我在javaScript中减去两个值(2.75 - 2.475)
。我得到了值0.2749999999999999
。当我检查计算器时,我得到了不同的结果0.275
。在计算javaScript和计算器之间有什么不同?
答案 0 :(得分:1)
你必须修复精度
var d =2.75 - 2.475
var result = d.toFixed(3)
答案 1 :(得分:1)
您可以尝试将其四舍五入:
var res = parseFloat((2.75 - 2.475).toFixed(3));
console.log('type of res ', typeof res);
console.log('res ', res);
var res = +(2.75 - 2.475).toFixed(3);
console.log('type of res, ', typeof res);
console.log('res, ', res);
Open console.
浮点运算只能产生近似结果, 四舍五入到最接近的可表示实数。当你执行一个 计算顺序,这些舍入误差可以累积, 导致越来越不准确的结果。舍入也会导致 与我们通常所期望的那种属性的惊人偏差 算术。例如,实数是关联的,意思是 对于任何实数x,y和z,总是这样(x + y)+ z = x +(y + z)。
答案 2 :(得分:1)
计算器会自动对结果进行舍入。
在javascript中你必须自己做:
type="text/javascript">alert(parseFloat((2.75 -
2.475).toFixed(5)));</script>
&#13;