Math.Log

时间:2019-10-14 20:42:21

标签: c# double logarithm

我正在尝试确定给定整数n是否为3的幂。我的方法是取n的以3为底的对数,并检查结果小数点后是否还有其他内容:

int n = 243;
double result = Math.Log(n, 3);
Console.WriteLine(result);
if (result % 1 == 0)
{
    return true;
}

return false;

这是我运行上述代码时程序的输出:

5
False

我尝试了另一种方式:

        double result = Math.Log(n, 3);
        Console.WriteLine(result);
        Console.WriteLine((int)result);
        double remainder = result - (int)result;
        Console.WriteLine(remainder);
        if (remainder == 0)
        {
            return true;
        }

        return false;

n = 243,我得到:

5
4
0.999999999999999
False

请注意,使用n=27会按预期返回True。这里发生了什么?我期望{n} 243时返回True

0 个答案:

没有答案