for循环中从负到负的两倍增量

时间:2014-05-19 09:07:03

标签: java

我执行了以下for循环,

for(double i = -1.0;i <=1.0;i=i+0.1)
      System.out.println(i);

O / P:

-1.0
-0.9
-0.8
-0.7000000000000001
-0.6000000000000001
-0.5000000000000001
-0.40000000000000013
-0.30000000000000016
-0.20000000000000015
-0.10000000000000014
-1.3877787807814457E-16
0.09999999999999987
0.19999999999999987
0.2999999999999999
0.3999999999999999
0.4999999999999999
0.5999999999999999
0.6999999999999998
0.7999999999999998
0.8999999999999998
0.9999999999999998

在0.0之前的中间得到一个奇怪的-1.3877787807814457E-16。

二进制中没有精确的小数点表示,但应该有相关性。 -1.3877787807814457E-16与-0.1到0.0之间的任何值无关。

为什么计算这个值?

0 个答案:

没有答案