最近做一个报价计算器。
result = 1053*area*1.08;
console.log(result);
如果area的值是100
那么输入为113724.00000000001
这是什么奇怪的问题呢?
问题1.
如何对计算结果保留2位小数。
问题2:
是什么原因造成了输出的。00000000001?
求高手指点。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
浮点运算会有精度损失,
问题1:
计算精读丢失问题。因为有些
十进制
的浮点数不能很好的转化为二进制
。问题2:
1、对计算结果保留两位小数:result.toFixed(2)
2、浮点数在计算机中的存储是不精确的。
这是因为:计算机储存浮点数使用的是二进制
一个十进制的有限小数,转化成二进制后可能会变成无限循环小数
然而,计算机储存能力是有限的,只能储存一定数量的小数位,剩下的将被舎去
于是,就出现了这样的误差
简单方案: