log base 2 and nan



我使用下面的代码来计算log base 2。

Math.log(x)/Math.log(2);

用这个函数,如果x=4/5,我得到nan。

用calc,excel这个问题不存在。

如何避免得到nan并获得真正的价值?

我有一种强烈的感觉,您的4/5是整数。这意味着4/5将由于整数除法而评估为0

log(0)是负无穷大,这可能是你的NaN的来源。

要解决此问题,请在进行除法之前将数字强制转换为浮点:

double x = (double)4 / 5;

我怀疑您的问题是因为4 / 50,因为它使用整数算术进行除法。如果您想使用浮点运算来获得0.8,那么您应该尝试4.0 / 5

最新更新