2012-02-26 39 views
2

我使用下面的代碼來計算對數底2數底2和楠

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

使用此功能,我得到楠如果x = 8/10。

用calc,excel這個問題不存在。

如何避免獲得nan並獲得真正的價值?

回答

8

我有一種強烈的感覺,你的4/5是整數。這意味着由於整數除法,4/5將評估爲0

log(0)是負無窮,可能是您的NaN的來源。

爲了解決這個問題,投你的號碼浮點你做除法之前:

double x = (double)4/5; 
6

我懷疑你的問題是因爲4/50,因爲它使用整數算術進行除法。如果你想使用浮點運算得到0.8,那麼你應該嘗試4.0/5