"For"循环增量无法正常工作.为什么?

Art*_*yan 6 .net c# floating-point loops

for (float i = -1; i <= 1; i+=0.1f)   
{
    Console.WriteLine(i);   
}
Run Code Online (Sandbox Code Playgroud)

这是结果

-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
Run Code Online (Sandbox Code Playgroud)

Max*_*erl 4

因为浮点数不是精确的十进制数,而是浮点数。请改用十进制。

参考维基百科:维基百科

  • 当然,一旦他想要增加 1/3,即使使用“Decimal”,他也会遇到同样的问题 (6认同)