BigDecimal的divide方法報錯

  • 報錯:
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
  • 報錯語句:
a.divide(b));
  • 原因:

JAVA中如果用BigDecimal做除法的時候一定要在divide方法中傳遞第二個參數(shù),定義精確到小數(shù)點后幾位,否則在不整除的情況下,結(jié)果是無限循環(huán)小數(shù)時,就會拋出以上異常。

  • 解決方法:
a.divide(b, 2, BigDecimal.ROUND_HALF_UP);
  • 總結(jié):

注意這個divide方法有兩個重載的方法,一個是傳兩個參數(shù)的,一個是傳三個參數(shù)的:

//兩個參數(shù)的方法:
//傳入除數(shù)
@param divisor value by which this {@code BigDecimal} is to be divided. 
//傳入round的模式
@param roundingMode rounding mode to apply. 

//三個參數(shù)的方法:
//傳入除數(shù)
@param divisor value by which this {@code BigDecimal} is to be divided. 
//傳入精度
@param scale scale of the {@code BigDecimal} quotient to be returned. 
//傳入round的模式
@param roundingMode rounding mode to apply. 
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容