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)then 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.printf("在第 %d 年,您的总金额为 %.2f\n", year, currentBalance);

于 2012-10-28T02:27:07.237 回答
0

错误调用是第一个 System.out.println(),因为它在打印给定内容后附加了一个新行。

有两种解决方案-

方法-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));

两者都会产生相同的结果。即使是第二个也更具可读性。

输出:

在第 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 回答