在我們進行實際業務的處理的時候,會經常遇到數據的計算,這時候選擇什麼類型的數據類型就至關重要了!
牽涉到金額的時候最多的時候是含有小數,使用float計算往往會出現問題!
例如:
我們在計算的時候,會出現這樣的數據1.99999999,而不是2.0,這是因爲浮點數在系統中是以二進制表示的,在進行計算的時候會有誤差的存在,
這時我們需要採用bigdecimal,進行數據轉換計算,但是由於flaot的標識存在誤差,在進行轉換爲bigdecimal的時候需要先將float轉換成String類型,而不能進行數據的強制類型轉換,在其前面加上bigdecimal,這樣就會拋出 強轉出錯。
在進行bigdecimal進運算的時候會出現這樣的異常 java.lang.ArithmeticException: Rounding necessary
這是因爲小數點過長,設置的精度不夠!