English 中文(简体)
为什么100*0.07等于69999?
原标题:Why is the 100*0.07 equal to 6.9999....? [duplicate]
  • 时间:2012-05-22 22:30:27
  •  标签:
  • matlab

我的一位朋友在Matlab写道:

for p=0.01:0.01:0.1
100*p 
end

产出如下:

1
2
3
4 
5
6.000000000000001
6.999999999999999
8
9
10

我想知道为什么有轻微错误?这是否意味着一般案件的准确性也象本案一样差?

编辑:

我们比较了数字 -- -- 7 =6.99999999999999 和产出0 。因此,Matlab自相矛盾!

最佳回答

问题在于 0.01 不能在二进制的浮点上 准确代表 0.01 。 0.07 也不可能 0.07 。

问题回答

看起来像一个浮点精确度“问题”: