## 1、BigDecimal精度問題
場景:将double類型的數值轉為BigDecimal來做數學運算
問題: BigDecimal d1 = new BigDecimal(698.745685);
列印輸出d1 = 698.7456849999999999999999
如果保留 5位小數 則輸出 698.74568 (正确的應該是698.74569)
解決方法 :将double數值初始化為BigDecimal 時,用方法BigDecimal.valueOf(698.745685)
或者将double類型轉為String >>>>new BigDecimal("698.745685");
## 2、将BigDecimal轉為double類型的數值時,會自動截取“無效”小數位數
舉例:double d2 = BigDecimal.valueOf(2360.000).doubleValue(); 列印輸出d2= 2360.0
解決方法 BigDecimal.valueOf(2360.000).toString()。或者用DecimalFormat
因為這個原因,導緻無論 我怎麼設定小數位置,
隻要是這類數值620.0000 》》》》620.0
563.12000》》》》563.12
得到的double 值最終都自動删除小數位數中 0 的部分,影響數值格式 化
這個問題隐藏的很深,沒遇到特殊資料或特殊用途真的不易發現