Javascript 四舍五入到具体数字
我正在寻找一种标准的JS方法,基本上可以做到这一点:Javascript 四舍五入到具体数字,javascript,rounding,Javascript,Rounding,我正在寻找一种标准的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) { myVa
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。不完全确定这是否是您想要的,但我的建议如下:
const temp = Math.abs(myValue / 1000000) * 1000000;
If基本上会将绝对值四舍五入到最接近的百万
您可以添加if或switch语句,根据具体情况将其转换为预定义值。这将减少函数中所需的样板文件。这里是您需要的代码 函数n,c,d,t{ var c=isNaNc=Math.absc?2:c, d=d==未定义?:d, t=t==未定义?,:t, s=n<0?-:, i=StringparseIntn=Math.absNumbern | | 0.toFixedc, j=j=i.长度>3?j%3:0; 返回s+j?i.substr0,j+t:+i.substrj.replace/\d{3}?=\d/g,$1+t+c?d+Math.absn-i.tofixedc2:; } 函数numShortvalue{ ifvalue<1000000{ 返回值,2。,; }其他ifvalue<100000000{ 返回格式MoneyValue/1000000,2,,+m'; }否则{ 返回格式MoneyValue/1000000000,2,,+b'; } } console.lognumShort100; console.lognumShort1000; console.lognumShort10000; console.lognumShort100000; console.lognumShort1000000; console.lognumShort10000000; console.lognumshort10000000; console.lognumshort100000000; console.lognumshort1000000000;
console.lognumshort10000000000 当然,你必须自己实施这种特殊的事情。 如果您只是想要一些别致的单行解决方案来让代码更干净: var myValue=1234567; var rounded=[100000000005000000]。reducey,x=>{return y.diff==undefined | | | | Math.absx-myValue