今天在運用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 輸...