如何在Excel轮次函数中以负精度舍入js中的数字

时间:2017-04-30 05:21:27

标签: javascript node.js math

我试图将值从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

3 个答案:

答案 0 :(得分:2)

试试这个,

function roundDown(number, decimals) {
    decimals = decimals || 0;
    return ( Math.floor( number * Math.pow(10, decimals) ) / Math.pow(10, decimals) );
} 

roundDown(8904000, -5)

答案 1 :(得分:2)

舍入到小数位的常用解决方案是:

  1. 使用Number.prototype.toFixed()
  2. float乘以某些power of 10,以便利用Math.round()
  3. 这两个工作都有效,除了有时小数为5的四舍五入而不是向上。通过使用以指数表示法表示的数字可以避免舍入问题

    试试这个

    function round(value, decimals) {
      return Number(Math.round(value+'e'+decimals)+'e-'+decimals);
    }
    
    round(8904000, 5)
    

答案 2 :(得分:0)

Math.round(value/1000000)*1000000

value除以舍入unit,因此1000000Math.round()数字和multiply与指定的unit