java.util.UnknownFormatConversionException:Conversion ='2'

时间:2016-02-28 02:00:09

标签: java exception

我一直收到此转化错误:

> Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '2'
    at java.util.Formatter.checkText(Unknown Source)
    at java.util.Formatter.parse(Unknown Source)
    at java.util.Formatter.format(Unknown Source)
    at java.util.Formatter.format(Unknown Source)
    at java.lang.String.format(Unknown Source)
    at BookTest.main(BookTest.java:40)

这是我遇到问题的代码:

double total = 0;

    for (int i=0; i<quantityArray.length; i++)
    {
        message += String.format("%s %s $%2.f", bookArray[i].getTitle(), bookArray[i].getIsbn(), bookArray[i].calculateCharge(quantityArray[i]));
        total += bookArray[i].calculateCharge(quantityArray[i]);
    }

    message += String.format("Total is: $%2.f", total);
    JOptionPane.showMessageDialog(null, message);

2 个答案:

答案 0 :(得分:2)

问题在于%2.f参数。你可能想要像

这样的东西
String.format ("Total is: $%5.2f", total);

在这个例子中,5是字段的总宽度(包括小数点),2是小数位数。

答案 1 :(得分:2)

Syntax是:

%[argument_index$][flags][width][.precision]conversion

如您所见,. 必须后跟precision值。

您的价值(%2.f)无效 如果您要输出$123.45,则需要翻转2.%.2f