我有这样的代码:C#float和double错误
static void Main()
{
float i;
for (i = 0; i <= 100; i = i + 0.01F)
{
Console.WriteLine(i);
}
}
而且它打印我:
0
0.01
0.02
0.03
0.04
0.05
0.05999999
0.06999999
0.07999999
0.08999999
0.09999999
0.11
这是一个错误还是我做错了什么? 有没有解决这个问题的方法?
http://csharpindepth.com/Articles/General/FloatingPoint.aspx –
[什么每台计算机科学家应该知道关于浮点运算(HTTP:// docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) – Steve
[SO]上有许多重复内容解释了C#和其他语言中浮点值的行为,我选择了其中一个思想很好地解释了这个问题,如果你需要其他的解释/例子,请做一个搜索[float bug .NET](http://stackoverflow.com/search?q=float+bug+%5B.net%5D) –