对数增量

时间:2016-09-06 14:25:40

标签: c# increment logarithm

是否有增加对数的方法或命令?
那我怎么能增加整数:

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

1 个答案:

答案 0 :(得分:3)

你可以用下两个循环缩短你的代码,留下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