私はJavaを使い始めていて、複利計算機の基本GUIを作ろうとしています。私はユーザー入力を受け取るように文字列を設定し、それは最初の2つの倍精度で動作しますが、forループの長さにStringを入力させたい場合、エラーが発生します。私がしようとしていることはできないのですか?forループの入力ダイアログが機能していませんか?
import javax.swing.JOptionPane;
class Sample {
public static void main(String[] args) {
String p = JOptionPane.showInputDialog("Enter initial investment: ");
String r = JOptionPane.showInputDialog("Enter interest rate (as a decimal): ");
String y = JOptionPane.showInputDialog("Enter time period (in years): ");
double num1 = Integer.parseInt(p);
double num2 = Integer.parseInt(r);
double num3 = Integer.parseInt(y);
double amount;
for(double year = 1; year <= y; year++){
amount = num1 * Math.pow(1 + num2, year);
}
JOptionPane.showMessageDialog(null, "The answer is: " + amount, "the title", JOptionPane.PLAIN_MESSAGE);
}
}
doubleとString 'year <= y'を比較しているので、プログラムがコンパイルされますか? – SachinSarawgi
プログラムはコンパイルされません。 – SachinSarawgi
ヒント:年数は通常**全体の**数値です。浮動小数点数を使ってそれらを表現することは決してありません。意味:数値のデフォルトはintまたはlongでなければなりません。実際には、浮動小数点数だけ浮動小数点数を使用します。数年、数日または数ヶ月間ではありません。そして:**超悪い**命名。 num1 ... num3は何も言いません。代わりに、investment、interestRate、およびperiodInYearsを使用してください。 – GhostCat