丟擲問題
overtimehour = new bigdecimal(overtimeminute).divide(new bigdecimal(60), 2, bigdecimal.round_floor).doublevalue();
此處涉及2點:1、bigdecimal除法 2、bigdecimal四捨五入
內容
bigdecimal.setscale()方法用於格式化小數點結尾補充setscale(1)表示保留一位小數,預設用四捨五入方式
setscale(1,bigdecimal.round_down)直接刪除多餘的小數字,如2.35會變成2.3
setscale(1,bigdecimal.round_up)進製處理,2.35變成2.4
setscale(1,bigdecimal.round_half_up)四捨五入,2.35變成2.4
setscaler(1,bigdecimal.round_half_down)四捨五入,2.35變成2.3,如果是5則向下舍
setscaler(1,bigdecimal.round_ceiling)接近正無窮大的捨入
setscaler(1,bigdecimal.round_floor)接近負無窮大的捨入,數字》0和round_up作用一樣,數字<0和round_down作用一樣
setscaler(1,bigdecimal.round_half_even)向最接近的數字捨入,如果與兩個相鄰數字的距離相等,則向相鄰的偶數捨入。
BigDecimal保留小數和除法報錯問題
public static void main string args setscale 方法第乙個引數保留小數點位數,第二個是規則見下方 除不盡報錯解決 將結果擷取,就是一定要指定保留小數個數 system.out.println a.divide b,0 bigdecimal.round dow...
BigDecimal除法問題
bigdecimal做除法時,盡量使用divide bigdecimal divisor,intscale,introundingmode 這個方法 divisor 被除數 scale保留小數字數 roundingmode保留小數時採用的方法,一般使用bigdecimal.round up 四捨五入...
BigDecimal除法運算報錯
今天在運用bigdecimal做除法運算的時候,錯誤如下 non terminating decimal expansion no exact representable decimal result 不是很明白為什麼會這個樣子,度娘告訴我是因為 bigdecimal 做除法運算,如果除的結果為無限...