浮點數值不適用於禁止出現舍入誤差的金融計算中。例如,命令System.out.println(2.0-1.1)將列印出0.8999999999999999999999999,而不是人們想象的0.9。其主要原因是浮點數值採用二進位系統表示,而在二進位系統中無法精確的表示分數1/10。這就好像十進位無法 ...
浮點數值不適用於禁止出現舍入誤差的金融計算中。例如,命令System.out.println(2.0-1.1)將列印出0.8999999999999999999999999,而不是人們想象的0.9。其主要原因是浮點數值採用二進位系統表示,而在二進位系統中無法精確的表示分數1/10。這就好像十進位無法精確地表示1/3一樣。如果需要在數值計算中不含有任何舍入誤差,就應該使用BigDecimal類。