【发布时间】:2011-07-28 10:03:50
【问题描述】:
for (float i = -1; i <= 1; i+=0.1f)
{
Console.WriteLine(i);
}
这是结果
-1
-0.9
-0.8
-0.6999999
-0.5999999
-0.4999999
-0.3999999
-0.2999999
-0.1999999
-0.09999993
7.450581E-08
0.1000001
0.2000001
0.3000001
0.4000001
0.5000001
0.6000001
0.7000001
0.8000001
0.9000002
【问题讨论】:
-
欢迎来到饱经战火的浮点世界。
-
一个常见问题,尽管通常采用“float is broken!”的形式。浮点数(或双精度数)不准确,试试
0.1 + 0.2 == 0.3,它是错误的! -
嗯,实际上,它的工作方式完全符合预期。
-
您可以循环从 -10 到 10 的整数,增量为 1,然后在循环内除以 10(将整数转换为浮点数)以使其工作。
标签: c# .net loops floating-point