试图在java中舍入到两个小数位

时间:2012-10-28 02:17:35

标签: java eclipse decimal

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 个答案:

答案 0 :(得分: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;
    } 
}

答案 1 :(得分: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);

答案 2 :(得分:0)

System.out.printf(“年份%d,您的总金额为%。2f \ n”,年份,当前平衡);

答案 3 :(得分:0)

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

有两种解决方案 -

方法-1:

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

方法-2:[使用带有println()的String.format()

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(控制台)上打印格式化的字符串。

根据您的需要使用它们。