Math.round(-1.5)解读

Math.round个人理解

最近看到一个问题Math.round(-1.5)输出的是-1,有点蒙蔽,不是四舍五入吗?遂搜了一些博客看了看,经过自己的总结,写篇博客记录一下

System.out.println("Math.round(1.5)  "+Math.round(1.5));
System.out.println("Math.round(1.4)  "+Math.round(1.4));
System.out.println("Math.round(0.4)  "+Math.round(0.4));
System.out.println("Math.round(0.5)  "+Math.round(0.5));
System.out.println("Math.round(-1.6)  "+Math.round(-1.6));
System.out.println("Math.round(-1.5)  "+Math.round(-1.5));
System.out.println("Math.round(-1.4)  "+Math.round(-1.4));
System.out.println("Math.round(-0.4)  "+Math.round(-0.4));
System.out.println("Math.round(-0.5)  "+Math.round(-0.5));
System.out.println("Math.round(-0.6)  "+Math.round(-0.6));
System.out.println("---------------------");
System.out.println("Math.floor(1.5)  "+Math.floor(1.5));
System.out.println("Math.floor(1.4)  "+Math.floor(1.4));
System.out.println("Math.floor(0.4)  "+Math.floor(0.4));
System.out.println("Math.floor(0.5)  "+Math.floor(0.5));
System.out.println("Math.floor(-1.6)  "+Math.floor(-1.6));
System.out.println("Math.floor(-1.5)  "+Math.floor(-1.5));
System.out.println("Math.floor(-1.4)  "+Math.floor(-1.4));
System.out.println("Math.floor(-0.4)  "+Math.floor(-0.4));
System.out.println("Math.floor(-0.5)  "+Math.floor(-0.5));
System.out.println("Math.floor(-0.6)  "+Math.floor(-0.6));

打印结果如下:

Math.round(1.5) 2
Math.round(1.4) 1
Math.round(0.4) 0
Math.round(0.5) 1
Math.round(-1.6) -2
Math.round(-1.5) -1
Math.round(-1.4) -1
Math.round(-0.4) 0
Math.round(-0.5) 0
Math.round(-0.6) -1
---------------------
Math.floor(1.5) 1.0
Math.floor(1.4) 1.0
Math.floor(0.4) 0.0
Math.floor(0.5) 0.0
Math.floor(-1.6) -2.0
Math.floor(-1.5) -2.0
Math.floor(-1.4) -2.0
Math.floor(-0.4) -1.0
Math.floor(-0.5) -1.0
Math.floor(-0.6) -1.0

Math.round是在参数的基础上加0.5然后向下取整,方法内部调用了floor方法

1.5加0.5 等于 2.0 向下取整就是 2
1.4加0.5 等于 1.9 向下取整就是 1
0.4加0.5 等于 0.9 向下取整就是 0
0.5加0.5 等于 1.0 向下取整就是 1
-1.6加0.5 等于 -1.1 向下取整就是 -2
-1.5加0.5 等于 -1.0 向下取整就是 -1
-1.4加0.5 等于 -0.9 向下取整就是 -1
-0.4加0.5 等于 0.1 向下取整就是 0
-0.5加0.5 等于 0 向下取整就是 0
-0.6加0.5 等于 -0.1 向下取整就是 -1

这个向下取整是这样的:
2
1
0
-1
-2
从上到下取整
个人理解 仅供参考
代码在线网站可以网上测试代码

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页