0

コードを更新しましたが、実行時に出力されるテーブルの下部に、年を初期化した数値が引き続き表示されます。そして、私はまだ、印刷セクションの%.2dを使用して2桁の小数点以下を作成する方法を理解しようとしています。ですから、それについてのフィードバックも役に立ちます。

import java.util.Scanner;

public class Investment {

public static double futureInvestmentValue(double investmentAmount, double monthlyInterestRate, int years){

double futureInvestmentValue = 0.0;

for (years = 1; years <=30; years++){
    //calculate futureInvestmentValue
    futureInvestmentValue += (investmentAmount * (Math.pow(1 + monthlyInterestRate, years * 12)));
    System.out.print(years + "\t" + futureInvestmentValue + "\n");

}//end for
return futureInvestmentValue;
}//end futureInvestmentValue

public static void main(String[] args){

    Scanner input = new Scanner (System.in);

    //obtain Investment amount
    System.out.print("Enter Investment amount: ");
    double investmentAmount = input.nextDouble();

    //obtain monthly interest rate in percentage
    System.out.print("Enter annual interest rate in percentage: ");
    double annualInterestRate = input.nextDouble();

    //calculate annual interest rate
    double monthlyInterestRate = (annualInterestRate / 1200);

int years = 1;

System.out.println("Years\t" + "Future Value");

System.out.print(years + "\t" + futureInvestmentValue(investmentAmount, monthlyInterestRate, years) + "\n");

}//end main
}//
4

2 に答える 2

0

これを計算する際に使用される用語を変更することはありませんannualInterest

double annualInterest = (1-1 / Math.pow(investmentAmount * (1 + monthlyInterestRate), years * 12));

于 2013-02-23T21:34:40.023 に答える
0

スキャナーから取得しているのと同じ値を返します。

double InvestmentAmount = input.nextDouble();

futureInvestmentValueを返す必要があります。

そして、他のコメントで指摘されているように、あなたはループしていますが、変更はしていませんが、ループ内の変数の値を一度変更するので、ループを回避したり、ロジックをチェックしたりできます。

于 2013-02-23T21:36:24.803 に答える