2017-01-21 64 views
0

我在Java開發非常新,所以它可能是一個簡單的問題:數學戰俘返回1.0

double u130 = (1/30); 
double q1 = Math.pow(1.025, u130); 

的Q1等於1.0,但它應該是1.0008234259155

U130 = 0.0也是錯誤的。

我的理解double是爲了這麼多小數位而做的,所以問題在哪裏?

順便說一下,我在Android設備上測試,這應該是一個限制?!

由於

回答

5

1/30歐幾里得除法,所以結果是0(如int)。

相反,你需要一個真正的

double u130 = 1./30; 
double q1 = Math.pow(1.025, u130); 
+1

'1.0',而不是'1.' – Null

+0

'1.'就足夠了。 – rom1v

+1

我從來沒有測試過,它很好地知道新的東西,:)) – Null

0

這應該解決您的問題:

double u130 = (1/(double)30); 
    double q1 = Math.pow(1.025, u130);