java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result異常的解決方法
JAVA程序異常:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result。
發現報錯的語句是:
1 |
foo.divide(bar));
|
原來JAVA中如果用BigDecimal做除法的時候一定要在divide方法中傳遞第二個參數,定義精確到小數點後幾位,否則在不整除的情況下,結果是無限循環小數時,就會拋出以上異常。
解決方法:
1 |
foo.divide(bar, 2 , BigDecimal.ROUND_HALF_UP); |
註意這個divide方法有兩個重載的方法,一個是傳兩個參數的,一個是傳三個參數的:
兩個參數的方法:
@param divisor value by which this [email protected] BigDecimal} is to be divided. 傳入除數
@param roundingMode rounding mode to apply. 傳入round的模式
三個參數的方法:
@param divisor value by which this [email protected] BigDecimal} is to be divided. 傳入除數
@param scale scale of the [email protected]
@param roundingMode rounding mode to apply. 傳入round的模式
Tonitech版權所有 | 轉載請註明出處: http://www.tonitech.com/2327.html
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result異常的解決方法