【问题标题】:how to deal with this round off error如何处理这个舍入错误
【发布时间】:2017-04-07 07:09:29
【问题描述】:

当我在 Javascript 中进行一些简单的算术运算时,出现了某种舍入错误。我不想要这个,但我不知道如何处理它。 这是一个例子:

38.8 * 3 => 116.39999999999999

【问题讨论】:

标签: javascript


【解决方案1】:

使用这个

function multiply (a, b) {
   exp = b.toString().length - 2;
   function makeInt (num) {
       return num * Math.pow(10, exp);
   }
   function makeFloat(num) {
       return num / Math.pow(100, exp);
   }
   return makeFloat(makeInt(a) * makeInt(b));
} 

var result = multiply(38.8,3)

console.log(result);

https://jsfiddle.net/v51s34st/

【讨论】:

    【解决方案2】:

    使用 Math.ceil(38.8*3) 或 Math.floor(38.8*3)

    【讨论】:

      【解决方案3】:

      您可以使用
      parseFloat((38.8*3).toFixed(2))

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-01
        • 2021-05-11
        • 1970-01-01
        • 1970-01-01
        • 2010-09-16
        • 2021-04-16
        相关资源
        最近更新 更多