咳咳,先来首不怎么押韵的打油诗:
天花板高地板低
四舍五入不看一
遇到负的N点五
统统变成负的N
啥玩意儿!别急,请往下看~
js的Math
对象提供了三种舍入的方法,分别是:
Math.ceil()
——天花板:向上舍入、向大舍入Math.round()
——四舍五入Math.floor()
——地板:向下舍入、向小舍入
其中Math.ceil()
和Math.floor()
两种舍入方法最好理解,看一组测试:
// Math.ceil()向上舍入
Math.ceil(-1.4) // -1
Math.ceil(-1.5) // -1
Math.ceil(-1.6) // -1
Math.ceil(1.4) // 2
Math.ceil(1.5) // 2
Math.ceil(1.6) // 2
// Math.floor()向下舍入
Math.floor(-1.4) // -2
Math.floor(-1.5) // -2
Math.floor(-1.6) // -2
Math.floor(1.4) // 1
Math.floor(1.5) // 1
Math.floor(1.6) // 1
记忆:对于任意数,无论正负,Math.ceil()
都是得到数值更大的数,Math.floor()
都是得到数值更小的数。也就是打油诗的第一句:
天花板高地板低
但是,Math.round()
在特定情况下比较特殊,需要单独记忆,先看常规情况的测试:
// Math.round()四舍五入
Math.round(-1.4) // -1
Math.round(-1.6) // -2
Math.round(1.4) // 1
Math.round(1.5) // 2
Math.round(1.6) // 2
记忆:以上情况(非-x.5,x为任意数)都可以理解为Math.round()
眼里没有符号,无论正负,都先按正数对待,四舍五入之后再添上对应的符号。
但上面的记忆方法对于-x.5
就不适用了,不信请看测试:
Math.round(-1.5) // -1
Math.round(-1.5)
不等于-2,而是等于-1!
总结:
天花板高地板低(ceil得到数值更大的数、floor相反)
四舍五入不看一(“一”理解成负号“-”,存粹为了押韵)
遇到负的N点五
统统变成负的N(这句的韵脚实在是押不住啊~)
1+
0 条评论