2

System.printf("%.2f", currentBalance) は正常に動作していますが、問題は文の後に丸められた数値が表示されることです。コードをEclipseプログラムに入れて実行すると、何かが明らかに間違っていることがわかります。誰かがそれを助けることができれば、それは大歓迎です。

public class BankCompound {


public static void main (String[] args) {
    compound (0.5, 1500, 1);
}

public static double compound (double interestRate, double currentBalance, int year) {

    for (; year <= 9 ; year ++) {

    System.out.println ("At year " + year +  ", your total amount of money is ");
    System.out.printf("%.2f", currentBalance);
    currentBalance = currentBalance + (currentBalance * interestRate);  
    }
    System.out.println ("Your final balance after 10 years is " + currentBalance);
    return currentBalance;
} 

}

4

4 に答える 4

2

これを試してください

import java.text.DecimalFormat;



public class Visitor {


    public static void main (String[] args) {
        compound (0.5, 1500, 1);
    }

    public static double compound (double interestRate, double currentBalance, int year) {

        for (; year <= 9 ; year ++) {

        System.out.println ("At year " + year +  ", your total amount of money is "+Double.parseDouble(new DecimalFormat("#.##").format(currentBalance)));


        currentBalance = currentBalance + (currentBalance * interestRate);  
        }
        System.out.println ("Your final balance after 10 years is " + currentBalance);
        return currentBalance;
    } 
}
于 2012-10-28T02:24:08.810 に答える
1

System.out.println()、名前が示すように

を呼び出してから を呼び出すかのように動作しprint(String)ますprintln()

System.out.print()現在の残高を出力した後に改行を使用して入れます。

System.out.print("At year " + year +  ", your total amount of money is ");
System.out.printf("%.2f", currentBalance);
System.out.println();

// or
System.out.print("At year " + year +  ", your total amount of money is ");
System.out.printf("%.2f\n", currentBalance);
于 2012-10-28T02:19:39.917 に答える
0

指定されたコンテンツを出力した後に新しい行を追加するため、誤った呼び出しは最初の System.out.println() です。

2つの解決策があります-

アプローチ -1 :

System.out.print("At year " + year +  ", your total amount of money is ");
System.out.printf("%.2f\n", currentBalance);

アプローチ-2:[String.format()とprintln()の使用]

System.out.println ("At year " + year + ", your total amount of money is "
                                      + String.format("%.2f", currentBalance));

どちらも同じ結果になります。2番目のものでさえ、より読みやすいです。

出力:

1 年目の合計金額は 1500.00 です

2 年目の合計金額は 2250.00 です

3 年目の時点で、合計金額は 3375.00 です。

4 年目の時点で、合計金額は 5062.50 です。

5 年目の時点で、合計金額は 7593.75 です。

6 年目の合計金額は 11390.63 です

7 年目の時点で、合計金額は 17085.94 です。

8 年目の時点で、合計金額は 25628.91 です。

9 年目の時点で、合計金額は 38443.36 です。

10 年後の最終残高は 57665.0390625 です

String.format はフォーマットされた文字列を返します。System.out.printf は、フォーマットされた文字列を system.out(console) にも出力します。

必要に応じて使用してください。

于 2012-10-28T02:38:05.377 に答える
0

System.out.printf ("年 %d での合計金額は %.2f\n", year, currentBalance);

于 2012-10-28T02:27:07.237 に答える