bigdecimal構造器需要傳入字符串類型.傳double會有精度問題.
同樣的,sout默認輸出數字也是double類型
package corejava; import java.math.BigDecimal; public class test { public static void main(String[] args) { double a = 2.0; double b = 1.1; System.out.println(a - b);// float c = 2.0f; float d = 1.1f; System.out.println(c - d);// 0.9 System.out.println(BigDecimal.valueOf(2.0 - 1.1));// BigDecimal bigDecimal1 = new BigDecimal("2.0"); BigDecimal bigDecimal2 = new BigDecimal("1.1"); BigDecimal subtract = bigDecimal1.subtract(bigDecimal2); System.out.println(subtract);// 0.9 } }
運行結果如下:
0.8999999999999999
0.9
0.8999999999999999
0.9