gpt4 book ai didi

javascript - 四舍五入到最接近的指定数字(十进制)

转载 作者:行者123 更新时间:2023-11-30 09:42:53 27 4
gpt4 key购买 nike

我正在尝试将数字四舍五入到最接近的指定小数。

我希望它四舍五入到小数点 .11、.22、.33、.44、.55、.66、.77、.88 但不是 .99。相反,0.99 应该是 1。

例如:

1.14 -> 1.11
56.75 ->56.77
34.234 -> 34.22
1.01 -> 1 (not 1.11)

问题不是四舍五入到特定小数位数,而是四舍五入到最接近的小数之一。

我试过了

(Math.round(parseFloat(number)*10)/9).toFixed(2);

我已经得到了我最想要的小数,除了 1 舍入到 1.11 和 .55 例如变成了我不想要的 .56。而且它比预期的要多,显然是因为我乘以 10 然后除以 9。

最佳答案

我建议把整数部分和小数部分分开。

如果小数部分接近因子 9,则返回整数部分加一,否则返回整数部分加上校正后的小数部分。

function getRight(v) {
var i = Math.floor(v),
f = Math.round((v - i) / 0.11);
return i + (f === 9 || f * 0.11);
}

console.log([1.14, 56.75, 34.234, 1.01].map(getRight));

如果出现负值:

function getRight(v) {
var i = Math[v < 0 ? 'ceil' : 'floor'](v),
f = Math.round((v - i) / 0.11);
return i + (f === 9 || f * 0.11);
}

console.log([1.14, 56.75, 34.234, 1.01].map(getRight));
console.log([-1.14, -56.75, -34.234, -1.01].map(getRight));

关于javascript - 四舍五入到最接近的指定数字(十进制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40304686/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com