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
1700440447
编写高质量代码:改善Java程序的151个建议 建议26:提防包装类型的null值
1700440448
1700440449
我们知道Java引入包装类型(Wrapper Types)是为了解决基本类型的实例化问题,以便让一个基本类型也能参与到面向对象的编程世界中。而在Java 5中泛型更是对基本类型说了“不”,如想把一个整型放到List中,就必须使用Integer包装类型。我们来看一段代码:
1700440450
1700440451
//计算list中所有元素之和
1700440452
1700440453
public static int f(List<Integer>list){
1700440454
1700440455
int count=0;
1700440456
1700440457
for(int i:list){
1700440458
1700440459
count+=i;
1700440460
1700440461
}
[
上一页 ]
[ :1.700440412e+09 ]
[
下一页 ]