以js计算百分比

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中.

Den*_*ret 5

不,结果是正确的(即使改变操作顺序可能会导致不同的结果),这是IEEE754浮点存储的奇迹之一:数字不像你看到的那样存储的结果,这是一些十进制数字和一个逗号,但作为

K * 2 ^ N
Run Code Online (Sandbox Code Playgroud)

其中K和N是有符号整数.

当然,并非所有数字都可以准确存储,其他数字只能被接近.

我建议你阅读IEEE754计算的这篇介绍.

您需要的是在将数字输出给用户时格式化数字,例如使用

var string = myNumber.toFixed(1);
Run Code Online (Sandbox Code Playgroud)