四舍五入至最接近的0.5,而不是0.0

时间:2019-04-23 20:00:00

标签: javascript math

如何找到最接近的nb.5值?

不包括.0值,

示例

round(1.0) = 1.5
round(1.99) = 1.5
round(2.0) = 2.5

4 个答案:

答案 0 :(得分:5)

您可以将0.5添加到Math.floor()返回的值中:

const round = (number) => Math.floor(number) + 0.5

console.log(round(1.0))
console.log(round(1.99))
console.log(round(2.0))

答案 1 :(得分:4)

Math.floor(value) + 0.5应该这样做。

此外,您应该澄清自己的规格...由于2的最接近0.5值是1.5和2.5,因此它们都处于相同的“距离”。

我了解您的示例通过接近最接近的0.5上限来处理这种情况,但这真的是您想要的吗?

答案 2 :(得分:0)

function round(num) {
    return Math.round((num % 10)) + 0.5
}

console.log(round(1));
console.log(round(1.99));
console.log(round(2));

答案 3 :(得分:0)

要获得预期的结果,请使用下面的选项使用Math.trunc-https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc

let round = (val) => Math.trunc(val) + 0.5
console.log(round(1.99))
console.log(round(1))
console.log(round(2))