問題描述:比如說 double a=3.0 double b=4.0 我 把a+b用 system.out.println輸出 得到7.000000000000000006
解決方法:做float或double運算的時候 建議使用BigDecimal 來處理
原因:這種情況是因爲我們的數據在計算內部存儲的是2進制(不論在內存還是cpu的寄存器內)的,其表示小數的時候根據不同的系統,不同的環境都是有一定差異的。
大多數情況下這個2進制數做運算是正常的,但是一旦你將這個運算多做幾次,比如用for循環之類的,就會發現 不但精度可能會丟失,更厲害的是計算結果完全不是期望值!所以JAVA下建議使用BigDecimal類來處理這類的運算。