我正在寻找一种标准的JS方法,该方法基本上可以做到这一点:

iRoundTo1 = Math.abs(1000000 - myValue);
iRoundTo2 = Math.abs(2000000 - myValue);
iRoundTo5 = Math.abs(5000000 - myValue);

myValue = Math.min(iRoundTo1, iRoundTo2,
        iRoundTo5);

if (myValue === iRoundTo1) {
    myValue = 1000000;
} else if (myValue === iRoundTo2) {
    myValue = 2000000;
} else if (myValue === iRoundTo5) {
    myValue = 5000000;
}


如标题中所述,我希望将我的值四舍五入为特定的数字,即1M,2M和5M。

最佳答案

当然,您必须自己实现这样的特殊功能。
如果您只想使用一种精美的单行解决方案来使代码更简洁:



var myValue = 1234567;
var rounded = [1000000,2000000,5000000].reduce((y,x)=>{return y.diff == undefined || Math.abs(x-myValue) < y.diff ? {val:x,diff:Math.abs(x-myValue)} : y},{}).val;
console.log(rounded);





或者,您可以声明一个函数以使其更加简洁。

关于javascript - 四舍五入到特定数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55491315/

10-12 06:42