对数增量

Logarithmic increment

有增加对数的方法或命令吗?
那么我如何增加整数:

int i = 0
while (i < 100)
{
   i++
}

结果:1、2、3 ... ,100

到目前为止我是这样做的:

double i = 0;
while (i < 100)
{
    if (i >= 10)
    {
        i += 10;
    }
    else if (i >= 1 & i < 10)
    {
        i += 1;
    }
    else if (i >= 0.1 & i < 1)
    {
        i += 0.1;
    }
    else if (i < 0.1)
    {
        i += 0.01;
    }         
}

结果:0.1、0.2、0.3 ... 1、2、3 .... 10、20、30 ... 100

从 0.001 到 1000 的更大范围很麻烦

第二个问题是:
如果 i = 0.05 并且我递增 i += 0.01 那么结果就是 0.060000000000000005。为什么它递增 0.010000000000000005 而不是 0.01

您可以使用两个 for next 循环来缩短代码,保留所有 if/elses 并用 Math.Pow 替换它们。 n 定义粒度 (n^-2 = 0,01)

int n,m;
for( n=-2 ; n < 3; n++ )
{
    for( m= 1 ; m < 10 ; m++ )
    {
        Console.WriteLine(m * Math.Pow(10,n));
    }
}

结果: 0,01 , 0,02 , 0,03 , 0,04 , 0,05 , 0,06 , 0,07 , 0,08 , 0,09 , 0,1 , 0,2 , 0,3 , 0, 4 , 0,5 , 0,6 , 0,7 , 0,8 , 0,9 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100 , 200 , 300 , 400 , 500 , 600 , 700 , 800 , 900