BigDecimal除法運算報錯

2021-08-31 12:29:42 字數 307 閱讀 1398

今天在運用bigdecimal做除法運算的時候,錯誤如下:

non-terminating decimal expansion; no exact representable decimal result

不是很明白為什麼會這個樣子,度娘告訴我是因為

bigdecimal 做除法運算,如果除的結果為無限小數的時候就會報錯。解決方法是:

divide(bigdecimal divisor, int scale, int roundingmode)指定scale和roundingmode

附上很詳細解說乙份

BigDecimal除法問題

bigdecimal做除法時,盡量使用divide bigdecimal divisor,intscale,introundingmode 這個方法 divisor 被除數 scale保留小數字數 roundingmode保留小數時採用的方法,一般使用bigdecimal.round up 四捨五入...

BigDecimal除法報錯問題

url 我的想法是,bigdecimal是不限精度的,所以當做除法的時候,計算機不知道結果的精度是需要多少,所以不指定的話會報錯 mathcontext mc new mathcontext 2,roundingmode.half down 精度為2,捨入模式為大於0.5進1,否則捨棄。bigdec...

BigDecimal做除法操作

bigdecimal做除法操作 bigdecimal b1 newbigdecimal 1000 bigdecimal b2 newbigdecimal 100 system.out.println b1.divide b2,2,bigdecimal.round half up tostring 輸...