亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

第二個if判斷很不明白,為什么要做scale判斷,除法計算的四舍五入方向為什么要做相應的變化?

第二個if判斷很不明白,為什么要做scale判斷,除法計算的四舍五入方向為什么要做相應的變化?

慕虎7371278 2022-07-08 15:07:04
在公司看項目代碼,其中有一個做除法的方法沒看懂,代碼如下:public static BigDecimal div(BigDecimal arg1, BigDecimal arg2) {if(arg2.compareTo(new BigDecimal(0))==0) return new BigDecimal(0);if(arg1.scale()<arg2.scale())return arg1.divide(arg2,2,BigDecimal.ROUND_HALF_UP);elsereturn arg1.divide(arg2,2,BigDecimal.ROUND_HALF_DOWN);}
查看完整描述

2 回答

?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

測試了下,代碼如下:
public static void main(String args[]) {
BigDecimal b = new BigDecimal(1);
BigDecimal a = b.add(new BigDecimal(2));
System.out.println(b);
System.out.println(a);
}
輸出結果為:1 3
也就是原對象的值沒被改變啊~
再仔細看看你哪寫錯了沒吧!~

查看完整回答
反對 回復 2022-07-11
?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

做的精度判斷,精度高的向后,精度低的向前

查看完整回答
反對 回復 2022-07-11
  • 2 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號