JavaScript中的减法问题

时间:2016-11-04 04:58:32

标签: javascript

如果从8.8中减去5,则实际结果为: 3.8 ,但在我的代码中,它提供 3.8000000007
为什么这样?任何人都可以提供有价值的见解吗?

提前致谢。

5 个答案:

答案 0 :(得分:1)

它在工作:



$scope.$apply()




答案 1 :(得分:0)

在下图中,计算部分在那里。请检查一下。

enter image description here

答案 2 :(得分:0)

  

Javascript引擎只是试图帮助你。如果它在算术运算中提供的数字中找到浮点数,它也会自动将结果解析为浮点数 - (具有尽可能高的精度)。   

因此,要绕过这个 Javascript引擎的热切但未经请求的帮助;您需要在结果值上手动调用:toFixed(),如下所示:

    var p = 8.8 - 5;
    console.log( p.toFixed(1) ); //<== 3.8

或者,您可以扩展数字原型并添加您的唯一功能,如果这是您想要的。但是,根本没有建议!!!

    <script type="text/javascript">

        Number.prototype.precise = function(){
            return this.toFixed(1);
        };

        Number.prototype.floatSubtract = function(num){
            return (this - num).toFixed(1);
        };

        var p1 = (8.8 - 5).precise();
        var p2 =  8.8.floatSubtract(5);

        console.log(p1);    //< 3.8
        console.log(p2);    //< 3.8
    </script>

答案 3 :(得分:0)

我认为使用&#34; toFixed()&#34;没有错。为什么你在不使用它的情况下寻找答案?

但是你可以用数学的方式做到这一点:

&#13;
&#13;
var result = (8.8 * 10  - 5 * 10) / 10;
console.log(result);
&#13;
&#13;
&#13;

答案 4 :(得分:0)

试试这个。我认为这将是解决方案。

<!doctype HTML>
<html>
  <head>
       <script>
	     num = 8.8 - 5;
         console.log(Math.round(num * 100) / 100)
       </script>
    </head>
</html>