如果从8.8中减去5,则实际结果为: 3.8 ,但在我的代码中,它提供 3.8000000007 。
为什么这样?任何人都可以提供有价值的见解吗?
提前致谢。
答案 0 :(得分:1)
它在工作:
$scope.$apply()

答案 1 :(得分:0)
答案 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;没有错。为什么你在不使用它的情况下寻找答案?
但是你可以用数学的方式做到这一点:
var result = (8.8 * 10 - 5 * 10) / 10;
console.log(result);
&#13;
答案 4 :(得分:0)
试试这个。我认为这将是解决方案。
<!doctype HTML>
<html>
<head>
<script>
num = 8.8 - 5;
console.log(Math.round(num * 100) / 100)
</script>
</head>
</html>