因爲須要處理精度比較高的浮點數,因此棄用double類型,改用BigDecimal類來進行數值處理。 ide
在加減乘時都沒有出現問題,可是到除法運算時,提示了以下錯誤: 函數
大概的意思是「沒法結束的除法表達式;沒有精確的除結果」。我當時輸入的10/3,結果應該是3.3333....333。 spa
因而在網上找資料,發現我原來的處理方式有問題。 ci
BigDecimal num1 = new BigDecimal("10"); im
BigDecimal num2 = new BigDecimal("3"); di
BigDecimal num3 = num1.divide(num2); vi
其實devide的函數定義以下 浮點數
BigDecimal.divide(BigDecimal divisor, int scale, RoundingMode roundingMode) ; 數字
scale爲小數位數; 錯誤
roundingMode爲小數模式;
寫成以下即可經過
BigDecimal num3 = num1.divide(num2,10,BigDecimal.ROUND_HALF_DOWN);