java中的double 類型數據相加問題

問題描述:比如說 double a=3.0 double b=4.0 我 把a+b用 system.out.println輸出 得到7.000000000000000006

解決方法:做float或double運算的時候 建議使用BigDecimal 來處理

原因:這種情況是因爲我們的數據在計算內部存儲的是2進制(不論在內存還是cpu的寄存器內)的,其表示小數的時候根據不同的系統,不同的環境都是有一定差異的。

大多數情況下這個2進制數做運算是正常的,但是一旦你將這個運算多做幾次,比如用for循環之類的,就會發現 不但精度可能會丟失,更厲害的是計算結果完全不是期望值!所以JAVA下建議使用BigDecimal類來處理這類的運算。


發佈了37 篇原創文章 · 獲贊 20 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章