log base 2和nan

rob*_*del 3 java math

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

Math.log(x)/Math.log(2);
Run Code Online (Sandbox Code Playgroud)

有了这个功能,如果x = 4/5,我会得到nan.

有了calc,excel这个问题就不存在了.

如何避免获得南方并获得真正的价值?

Mys*_*ial 8

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

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

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

double x = (double)4 / 5;
Run Code Online (Sandbox Code Playgroud)


Lou*_*man 6

我怀疑你的问题是因为它4 / 50因为它使用整数运算进行除法.如果你想使用浮点运算得到0.8,那你应该试试4.0 / 5.