float,String轉BigDecimal中的異常注意事項

在我們進行實際業務的處理的時候,會經常遇到數據的計算,這時候選擇什麼類型的數據類型就至關重要了!

牽涉到金額的時候最多的時候是含有小數,使用float計算往往會出現問題!

例如:

我們在計算的時候,會出現這樣的數據1.99999999,而不是2.0,這是因爲浮點數在系統中是以二進制表示的,在進行計算的時候會有誤差的存在

這時我們需要採用bigdecimal,進行數據轉換計算,但是由於flaot的標識存在誤差,在進行轉換爲bigdecimal的時候需要先將float轉換成String類型,而不能進行數據的強制類型轉換,在其前面加上bigdecimal,這樣就會拋出 強轉出錯。

在進行bigdecimal進運算的時候會出現這樣的異常  java.lang.ArithmeticException: Rounding necessary

這是因爲小數點過長,設置的精度不夠!

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