log base 2和nan

时间:2012-02-26 20:53:10

标签: java math

我使用下面的代码来计算日志库2.

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

使用此功能,如果x = 4/5,我会得到nan。

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

如何避免获得纳米并获得真正的价值?

2 个答案:

答案 0 :(得分:8)

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

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

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

double x = (double)4 / 5;

答案 1 :(得分:6)

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