舍入数到最接近的.5十进制数

iam*_*box 25 javascript math rounding

我正在寻找输出

4.658227848101266 = 4.5

4.052117263843648 = 4.0

我得到的最接近的是

rating = (Math.round(rating * 4) / 4).toFixed(1)
Run Code Online (Sandbox Code Playgroud)

但是这个数字是4.658227848101266 = 4.8 ???

小智 37

(Math.round(rating*2)/ 2).toFixed(1)


Ign*_*vas 22

它相当简单,你应该将该数字乘以2,然后将其四舍五入,然后除以2:

var roundHalf = function(n) {
    return (Math.round(n*2)/2).toFixed(1);
};
Run Code Online (Sandbox Code Playgroud)


小智 10

这适合我!(使用最接近你的格式)

   rating = (Math.round(rating * 2) / 2).toFixed(1)
Run Code Online (Sandbox Code Playgroud)