C#浮动和双错误

C#浮动和双错误,c#,C#,我有以下代码: static void Main() { float i; for (i = 0; i <= 100; i = i + 0.01F) { Console.WriteLine(i); } } 这是一个错误还是我做错了什么? 有什么解决办法吗?这不是一个bug。这是浮点数的一个基本属性。这些数字存储为尾数和指数,它们不能以完美的精度表示所有可能的数字。如果需要精度,则必须使用十进制类型 有关这方面的大量信息,请参见在解释C

我有以下代码:

static void Main()
{
    float i;

    for (i = 0; i <= 100; i = i + 0.01F)
    {
        Console.WriteLine(i);

    }

}
这是一个错误还是我做错了什么?
有什么解决办法吗?

这不是一个bug。这是浮点数的一个基本属性。这些数字存储为尾数和指数,它们不能以完美的精度表示所有可能的数字。如果需要精度,则必须使用十进制类型


有关这方面的大量信息,请参见

在解释C#和其他语言中浮点值的行为方面有许多重复项,我选择了其中一个,我认为它很好地解释了问题,如果您需要其他解释/示例,请搜索它不是一个bug,它是一个特性。:)谢谢你,十进制帮我搞定了。
0
0.01
0.02
0.03
0.04
0.05
0.05999999
0.06999999
0.07999999
0.08999999
0.09999999
0.11