【发布时间】:2021-04-17 01:19:26
【问题描述】:
我想将一个数字四舍五入到最接近的0.5。不是0.5 的所有因素,只是 0.5s。
例如,0.5, 1.5, 2.5, -1.5, -2.5。 不是 1, 1.5, 2, 2.5.
我只是解释它让自己感到困惑,所以这里有一些预期输出的例子。
0.678 => 0.5
0.999 => 0.5
1.265 => 1.5
-2.74 => -2.5
-19.2 => -19.5
我尝试了以下代码,但没有成功,
let x = 1.296;
let y = Math.round(x);
let z = y + Math.sign(y) * .5; // 1.5 (Correct!)
let x = -2.6;
let y = Math.round(x);
let z = y + Math.sign(y) * .5; // -3.5 (WRONG, should be -2.5)
代码在我的脑海中是有意义的,但不适用于负数。我缺少什么可以使这项工作正常进行?
【问题讨论】:
标签: javascript node.js rounding