格式化System.out.print Java时格式化小数位

时间:2014-01-14 18:40:34

标签: java decimal

嘿,我挖了一段时间,但无法找到相关的问题。我正在编写一个程序,输出一个表格,列出信用卡用户的最低付款和余额。问题出现在代码的最后一部分,我必须在输出之间放置空格,并将输出格式化为2位小数。

提前致谢!

我的代码:

 public static void main(String[] args) {

        double minPay = 0; 

        Scanner key = new Scanner(System.in); 
        System.out.printf("Please Enter your credit card balance: ");
        double balance = key.nextDouble();
        System.out.printf("Please Enter your monthly interest rate: ");
        double rate = key.nextDouble();

        System.out.printf("%-6s%-10s%-10s\n", "", "Min.Pmt", "New Balance");
        System.out.printf("------------------------------\n"); 
        for (int i=0; i<12; i++){
        minPay = balance*0.03; 

        if (minPay<10){
            minPay=10.00; 
        }

        double add = (balance*(rate/100));
        balance += add; 
        balance -= minPay; 
        System.out.printf("%-6s%-10.2f%-10.2f\n", i+1 + ".", "$" + minPay, "$" + balance);

2 个答案:

答案 0 :(得分:1)

在最后一行中,您将为printf参数创建两个字符串,而不是格式字符串所需的浮点数。在Java中,当您向某个字符串“添加”字符串时,另一个参数将转换为字符串,结果是另一个字符串。

将美元符号移动到printf格式字符串中,并将参数作为浮点数传递。

答案 1 :(得分:0)

使用DecimalFormat格式化任意数字

DecimalFormat df = new DecimalFormat("0.00");
String result = df.format(44.4549);