2013-05-02 47 views
0

我有這個函數,我試圖得到所有計算的列表。在Java中計算數學函數的值

f(x) = (100)(1.1)^X 

如何用Java計算出來。我嘗試了一個for循環來獲取x的值和y的最終結果,但那沒有奏效。可能是我的代碼裏面。我試圖得到1.1的指數,乘以100,這是正確的嗎?

for(int i = 1; i<=15; i++){ 
    int expcalc = (int) Math.pow(1.1, i); 
    int finalcalc = price * expcalc; 
    System.out.println(" " + finalcalc); 
} 

我在這裏做錯了什麼?

+1

爲什麼要將結果截斷爲整數值?價格在哪裏?究竟是什麼問題?你沒有指定。 – OldProgrammer 2013-05-02 22:42:01

回答

6

你爲什麼把結果作爲int?這將放棄小數點後的所有內容。將expcalcfinalcalc聲明爲double而不是爲了獲得準確的結果。

double expcalc = Math.pow(1.1, i); 
double finalcalc = price * expcalc; 
+0

哈哈,謝謝。我真的不知道我怎麼沒有想到使用雙。 – Herith12 2013-05-02 22:50:59

0

使用BigDecimal如果你使用POW()和十進制值,以及特別是在MONEY

假設你的解釋是正確的,

BigDecimal price = new BigDecimal("0.0"); //change this value to your price 
for(int i = 1; i<=15; i++){ 
    BigDecimal expcalc = new BigDecimal("1.1").pow(i); 
    BigDecimal finalcalc = price.multiply(expcalc); 
    System.out.println(" " + finalcalc); 
} 

避免使用雙/浮在貨幣計算。