Q1:Math.round(11.5) 等于多少?
正数比较直接,可以一眼就能看出结果是12。
但是对于负数的四舍五入,多多少少容易混淆,比如说下面两个例子,总会认为结果都应该是-11,其实是不对的。
Q2:Math.round(-11.5)等于多少?
返回值是-11。
Q3:Math.round(-11.6)等于多少?
返回值是-12。
每个人理解这个四舍五入的时候可能都不一样,今天请教了一下前辈,get一个还是很好理解的方法(其实也就是按照原理来计算):
将需要四舍五入的参数加0.5,然后进行向下取整即:Math.floor(x+0.5)
验证一下上面的三个问题
Math.round(11.5) 相当于 11.5+0.5 = 12.0,向下取整得到12
Math.round(-11.5) 相当于 -11.5+0.5 = -11.0,向下取整得到-11
Math.round(-11.6) 相当于 -11.6+0.5 = -11.1,向下取整得到-12
以下为阅读延伸,附原地址:Math.round()和Math.ceil()和Math.floor()的区别
Math.ceil( ) 表示向上取整,常说的天花板
Math.floor( ) 表示向下取整,常说的地板
Math.round( ) 表示四舍五入,算法为Math.floor(x+0.5)