打字猴:1.700440396e+09
1700440396
1700440397 //月利率,乘3计算季利率
1700440398
1700440399 BigDecimal r=new BigDecimal(0.001875*3);
1700440400
1700440401 //计算利息
1700440402
1700440403 BigDecimal i=d.multiply(r).setScale(2,RoundingMode.HALF_EVEN);
1700440404
1700440405 System.out.println(“季利息是:”+i);
1700440406
1700440407 }
1700440408
1700440409 }
1700440410
1700440411 在上面的例子中,我们使用了BigDecimal类,并且采用setScale方法设置了精度,同时传递了一个RoundingMode.HALF_EVEN参数表示使用银行家舍入法则进行近似计算,BigDecimal和RoundingMode是一个绝配,想要采用什么舍入模式使用RoundingMode设置即可。目前Java支持以下七种舍入方式:
1700440412
1700440413 ROUND_UP:远离零方向舍入。
1700440414
1700440415 向远离0的方向舍入,也就是说,向绝对值最大的方向舍入,只要舍弃位非0即进位。
1700440416
1700440417 ROUND_DOWN:趋向零方向舍入。
1700440418
1700440419 向0方向靠拢,也就是说,向绝对值最小的方向输入,注意:所有的位都舍弃,不存在进位情况。
1700440420
1700440421 ROUND_CEILING:向正无穷方向舍入。
1700440422
1700440423 向正最大方向靠拢,如果是正数,舍入行为类似于ROUND_UP;如果为负数,则舍入行为类似于ROUND_DOWN。注意:Math.round方法使用的即为此模式。
1700440424
1700440425 ROUND_FLOOR:向负无穷方向舍入。
1700440426
1700440427 向负无穷方向靠拢,如果是正数,则舍入行为类似于ROUND_DOWN;如果是负数,则舍入行为类似于ROUND_UP。
1700440428
1700440429 HALF_UP:最近数字舍入(5进)。
1700440430
1700440431 这就是我们最最经典的四舍五入模式。
1700440432
1700440433 HALF_DOWN:最近数字舍入(5舍)。
1700440434
1700440435 在四舍五入中,5是进位的,而在HALF_DOWN中却是舍弃不进位。
1700440436
1700440437 HALF_EVEN:银行家算法。
1700440438
1700440439 在普通的项目中舍入模式不会有太多影响,可以直接使用Math.round方法,但在大量与货币数字交互的项目中,一定要选择好近似的计算模式,尽量减少因算法不同而造成的损失。
1700440440
1700440441 注意 根据不同的场景,慎重选择不同的舍入模式,以提高项目的精准度,减少算法损失。
1700440442
1700440443
1700440444
1700440445
[ 上一页 ]  [ :1.700440396e+09 ]  [ 下一页 ]