1 /* 2 浮點數在Java中是以二進制表示的,這樣的話就有不少數不能準確表示 3 有的表示的是一個近似的數 4 例如floa型的0.1,用二進制表示是001111011 10011001100110011001101 5 化爲十進制是0.100000001490116119384765625 6 所以在一些精密的計算中不能用浮點型直接相加 7 須要借用BigDecimal類 8 */
浮點數直接相加:ide
1 public class BigDecimal1 { 2 public static void main(String[] args) { 3 System.out.println(0.01+0.09); 4 } 5 6 } 7 8 0.09999999999999999
BigDecimal類的成員方法的使用:spa
1 public class BigDecimal1 { 2 public static void main(String[] args) { 3 //建立BigDecimal 4 BigDecimal bd1=new BigDecimal("0.01"); 5 BigDecimal bd2=new BigDecimal("0.09"); 6 System.out.println("相加的結果爲:"+bd1.add(bd2)); 7 System.out.println("相減的結果爲:"+bd1.subtract(bd2)); 8 System.out.println("相乘的結果爲:"+bd1.multiply(bd2)); 9 System.out.println("相除的結果爲:"+bd2.divide(bd1)); 10 System.out.println("保留5位小數後相除的結果爲:"+bd1.divide(bd2,5, BigDecimal.ROUND_HALF_UP)); 11 } 12 13 } 14 15 16 相加的結果爲:0.10 17 相減的結果爲:-0.08 18 相乘的結果爲:0.0009 19 相除的結果爲:9 20 保留位數後相除的結果爲:0.11111