Jam*_*mes 6 javascript math percentage
我正在尝试使用javascript创建一个简单的百分比计算器.
我在控制台中尝试一个简单的计算(试试):
106 / 100 * 10
Run Code Online (Sandbox Code Playgroud)
它让我回报:
10.600000000000001
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?括号没有区别,每个数字都不会出现这种情况.我希望结果是10.6
对的吗?任何人都可以提供解释吗?这不是浏览器特定的,它发生在Chrome开发工具和firebug中.
不,结果是正确的(即使改变操作顺序可能会导致不同的结果),这是IEEE754浮点存储的奇迹之一:数字不像你看到的那样存储的结果,这是一些十进制数字和一个逗号,但作为
K * 2 ^ N
Run Code Online (Sandbox Code Playgroud)
其中K和N是有符号整数.
当然,并非所有数字都可以准确存储,其他数字只能被接近.
我建议你阅读IEEE754计算的这篇介绍.
您需要的是在将数字输出给用户时格式化数字,例如使用
var string = myNumber.toFixed(1);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13031 次 |
最近记录: |