如何获得最接近1000的数字。我写的是这样的。
function roundToNearest(numToRound, numToRoundTo) {
numToRoundTo = 1 / (numToRoundTo);
return Math.round(numToRound * numToRoundTo) / numToRoundTo;
}
alert(roundToNearest(2499,1000));
我得到了正确的结果,但如果它是1500,我只需要1000。
ex: 1100=>1000,
1400=>1000,
1500=>1000,
1600=>2000,
2000=>2000
但是使用上面的功能我得到2000而不是1000.如果数字是1500,如何获得1000?
答案 0 :(得分:1)
假设您希望1500
舍入到1000
而1501
舍入到2000
,您只需将默认舍入点向上移动一。在这种情况下,您可以从要舍入的值中减去一个。只要您只对整个正整数进行四舍五入,这不应该导致任何问题。试试这个:
function roundToNearest(numToRound, numToRoundTo) {
numToRoundTo = 1 / (numToRoundTo);
return Math.round((numToRound - 1) * numToRoundTo) / numToRoundTo;
}
[2, 1100, 1500, 1501, 1600, 2000].forEach(function(v) {
console.log(v, roundToNearest(v, 1000));
});