2013-03-31 48 views
0

運行結果就好像沒有輸入值。 我希望有人或所有人都可以評論代碼和評論。簡單平均程序未得到計算結果

package practice_array_tables; 

import javax.swing.*; 

public class Practice_Array_Tables { 
    public static void main(String[] args) { 
    //Variables 
     String Principal, Rate, Time; 

     //Prompt user for input via JOptionPane.showInputDialog 
     Principal = JOptionPane.showInputDialog(" Enter Principle Amount. "); 

      //Enter Rate. 
     Rate = JOptionPane.showInputDialog(" Enter Rate, i.e 0.10 "); 

     //Enter Time 
     Time = JOptionPane.showInputDialog(" Enter Time "); 

     //Parse String to Int. 
     int p = Integer.parseInt(Principal); 
     int r = Integer.parseInt(Rate); 
     int t = Integer.parseInt(Time); 

     //Compute Compound Interest.\ 
     double CompoundInterest = p * Math.pow((1+r/100), t); 
     double c = CompoundInterest; 

     //Print results to JOptionPane.showMessageDialog. 
     JOptionPane.showMessageDialog(null, " your answer " + c); 
    } 
} 

回答

1

int r = Integer.parseInt(Rate);

這裏的 率兩倍量的伎倆,當你parseInt函數返回0,因爲它是小於1

+0

謝謝你,我應該記住,從我的介紹到Java類,再次感謝隊友。 – user2230361

3

爲什麼你做了一倍,然後分配相同的雙到一個新的雙? 我也認爲你的複方利益公式是錯誤的。 A = P(1+(r/n))^ nt

此外,你正在解析速率到一個int,有效地使它0.你應該解析它爲一個雙。具體看一下這兩條線(不是連續的)

Rate = JOptionPane.showInputDialog(" Enter Rate, i.e 0.10 "); 
int r = Integer.parseInt(Rate); 

如果Double類在Java API在看,你會發現一個parseDouble方法非常相似的parseInt函數。 只需做

double r = Double.parseDouble(Rate); 

這會給你你所期望的;一個小數的數字。我懷疑你的問題可能是由乘以0.

+0

您可以添加更多以使其成爲有效的答案。不要只是指出什麼是錯的,也要展示如何解決它。 – ElefantPhace