什么是Math.round()?
round()是Math类中的一个四舍五入的方法.Math类中对这个方法有重载,可以传入一个double类型的参数返回的是一个long类型的数值,也可以传入一个float类型的参数返回的是一个int类型的数值.
计算规则
这个基础不好的同学不建议看源码,一个是源码实现中使用了一些位运算,这个还好说,另一个原因就是round()方法中调用了一些使用native修饰的方法,你不使用一些工具是看不到的.
但是这个也不耽误我们理解它的计算规则,因为比较简单,就是round()方法在实现四舍五入的时候实际上是不论正负的,它会先将这个数加上0.5然后在像下取整.
结果
-1.5+0.5=-1.0,然后-1.0向下取整结果为-1,最后的结果就是-1
问题的点就是计算规则中的+0.5,如果将-1.5换成+1.5的话结果就是
1.5+0.5=2.0,然后2.0向下取整结果为2