<分区>
我正在尝试使用 javascript 创建一个简单的百分比计算器。
我在控制台中尝试了一个简单的计算(试一试):
106 / 100 * 10
它返回给我:
10.600000000000001
这是怎么回事?括号没有区别,并不是每个数字都会出现这种情况。我希望结果是 10.6
对吗?任何人都可以提供解释吗?这不是特定于浏览器的,它发生在 Chrome 开发工具和 Firebug 中。
<分区>
我正在尝试使用 javascript 创建一个简单的百分比计算器。
我在控制台中尝试了一个简单的计算(试一试):
106 / 100 * 10
它返回给我:
10.600000000000001
这是怎么回事?括号没有区别,并不是每个数字都会出现这种情况。我希望结果是 10.6
对吗?任何人都可以提供解释吗?这不是特定于浏览器的,它发生在 Chrome 开发工具和 Firebug 中。
最佳答案
不,结果足够正确(即使改变操作顺序可能会导致不同的结果),这是 IEEE754 浮点存储的奇迹之一:数字不像你那样存储的结果看到它们,那是一些十进制数字和一个逗号,但是作为
K * 2 ^ N
其中 K 和 N 是有符号整数。
当然不是所有的数字都可以精确存储,其他的只是逼近。
我建议您阅读 this introduction to IEEE754 computing .
你需要的是在输出给用户时格式化数字,例如用
var string = myNumber.toFixed(1);
关于javascript - 在js中计算百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16489275/