我正在尝试将值从 8904000 四舍五入到 8900000 有什么可能的方法可以使用 Math.round 更改它。 MS Excel 中的示例
=round(8904000,-5);
ANS: 8900000
我尝试了下面的代码,但 Math.round 没有第二个参数
Math.round(8904000,-5);
ANS: 8904000
简而言之,我想将数字四舍五入到最接近的 100,000 个数字
这样 5300*56*30= 8904000 变成 8900000
试试这个,
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()
- 将
float
乘以一些power of 10
以利用Math.round()
。
这两种方法都有效,除了有时小数点 5 向下舍入而不是向上舍入。通过使用以指数表示法表示的数字可以避免舍入问题
试试这个
function round(value, decimals) {
return Number(Math.round(value+'e'+decimals)+'e-'+decimals);
}
round(8904000, 5)
Math.round(value/1000000)*1000000
将value
除以四舍五入的unit
,因此1000000
,Math.round()
指定unit
的数字和multiply
。