首页 > 解决方案 > 为什么除法在javascript中产生更多十进制值的结果

问题描述

当我执行以下操作时,我得到如下结果。

实际:5.9 / 100 = 0.059000000000000004

预期:5.9 / 100 = 0.059

有人有想法吗?

谢谢

标签: javascript

解决方案


来自MDN

数字

根据规范,JavaScript 中的数字是“双精度 64 位格式 IEEE 754 值”。这会产生一些有趣的后果。JavaScript 中没有整数之类的东西,所以如果你习惯于 C 或 Java 中的数学,你必须对你的算术小心一点。

另外,请注意以下内容:

0.1 + 0.2 == 0.30000000000000004;

在实践中,整数值被视为 32 位整数,一些实现甚至以这种方式存储它,直到它们被要求执行对数字有效但对 32 位整数无效的指令。这对于按位操作可能很重要。

支持标准算术运算符,包括加法、减法、模(或余数)算术等。还有一个我们之前没有提到的内置对象 Math,它提供了高级数学函数和常量:


推荐阅读