Javascript 如何在js中以负精度舍入一个数字,就像在Excel舍入函数中一样
我正在尝试将值从8904000四舍五入到8900000。是否有任何可能的方法使用Math.round更改此值。 MS Excel中的示例Javascript 如何在js中以负精度舍入一个数字,就像在Excel舍入函数中一样,javascript,node.js,math,Javascript,Node.js,Math,我正在尝试将值从8904000四舍五入到8900000。是否有任何可能的方法使用Math.round更改此值。 MS Excel中的示例 =round(8904000,-5); ANS: 8900000 我尝试了下面的代码,但Math.round不接受第二个参数 Math.round(8904000,-5); ANS: 8904000 简言之,我想把这个数字四舍五入到最接近的100000 所以5300*56*30=8904000变成8900000 Math.round(value
=round(8904000,-5);
ANS: 8900000
我尝试了下面的代码,但Math.round不接受第二个参数
Math.round(8904000,-5);
ANS: 8904000
简言之,我想把这个数字四舍五入到最接近的100000
所以5300*56*30=8904000变成8900000
Math.round(value/1000000)*1000000
将值
除以取整的单位
,因此1000000
,Math.round()
数字,然后用指定的单位
乘以,试试这个
function roundDown(number, decimals) {
decimals = decimals || 0;
return ( Math.floor( number * Math.pow(10, decimals) ) / Math.pow(10, decimals) );
}
roundDown(8904000, -5)
四舍五入到小数位的常见解决方案是:
Number.prototype.toFixed()
浮点值
乘以10的某个幂
,以利用Math.round()
李>
这两种方法都有效,但有时小数点5会向下舍入而不是向上舍入。使用指数表示法表示的数字可以避免舍入问题
试试这个
function round(value, decimals) {
return Number(Math.round(value+'e'+decimals)+'e-'+decimals);
}
round(8904000, 5)
可以发送我的问题中给定值的确切示例替换
值
为您要舍入的值。很好,此函数看起来与excel的操作完全相同,因此舍入(数字,2)和舍入(数字,-5)都有效