在 JavaScript 中,当值为 4.3 时,我希望它四舍五入为 4,如果值为 4.5 或以上,则四舍五入为 5。我希望所有这一切都不使用Math.round().
你也可以这样做:
round=num=>(num-~~num>=0.5?1:0)+~~num;
Run Code Online (Sandbox Code Playgroud)
解释:
~~num
Run Code Online (Sandbox Code Playgroud)
是一个双位或,实际上它删除了点后面的所有内容,所以 1.5 => 1
num-~~num
Run Code Online (Sandbox Code Playgroud)
获取到下一个较小整数的距离,例如 5.4 => 0.4, 5.6 => 0.6
一些测试用例:
http://jsbin.com/gulegoruxi/edit?console