1. 程式人生 > >BigDecimal的加減乘除及比較大小

BigDecimal的加減乘除及比較大小

1 import java.math.BigDecimal;
 2 import static java.lang.System.out;
 3 public class BaseClass {
 4     public static void main(String[] args) {
 5         BigDecimal num1 = new BigDecimal("100");  
 6         BigDecimal num2 = new BigDecimal("50");  
 7         
 8         //加法
 9         BigDecimal result1 = num1.add(num2);
10 out.println("和 是 : " + result1); 11 12 //減法 13 BigDecimal result2 = num1.subtract(num2); 14 out.println("差 是 : " + result2); 15 16 //乘法 17 BigDecimal result3 = num1.multiply(num2); 18 out.println("積 是 : " + result3);
19 20 //除法 21 BigDecimal result4 = num1.divide(num2); 22 out.println("商 是 : " + result4); 23 24 //比較 25 BigDecimal num = new BigDecimal("100"); //用做比較的值 26 out.println(num1.compareTo(num2)); //大於 時,返回 1 27 out.println(num.compareTo(num1)); //
等於 時,返回 0 28 out.println(num2.compareTo(num1)); //小於 時,返回 -1 29 30 out.println(num1.min(num2)); //求兩個數的最小值,返回小的數 31 out.println(num1.max(num2)); //求兩個數的最大值,返回大的數 32 33 // compareTo方法比較時,不同於equals方法,需要兩邊都不為null,否則會報空指標異常, 34 // 原始碼如下 35 // public int compareTo(BigDecimal val) { 36 // // Quick path for equal scale and non-inflated case. 37 // if (scale == val.scale) { 38 // long xs = intCompact; 39 // long ys = val.intCompact; 40 // if (xs != INFLATED && ys != INFLATED) 41 // return xs != ys ? ((xs > ys) ? 1 : -1) : 0; 42 // } 43 // int xsign = this.signum(); 44 // int ysign = val.signum(); 45 // if (xsign != ysign) 46 // return (xsign > ysign) ? 1 : -1; 47 // if (xsign == 0) 48 // return 0; 49 // int cmp = compareMagnitude(val); 50 // return (xsign > 0) ? cmp : -cmp; 51 // } 52 53 // max/min方法原始碼如下 54 // public BigDecimal max(BigDecimal val) { 55 // return (compareTo(val) >= 0 ? this : val); 56 // } 57 // public BigDecimal min(BigDecimal val) { 58 // return (compareTo(val) <= 0 ? this : val); 59 // } 60 } 61 }