java.util.UnknownFormatConversionException:Conversion=';2';

java.util.UnknownFormatConversionException:Conversion=';2';,java,exception,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 S

我一直收到此转换错误:

> 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);
双倍合计=0;

对于(int i=0;i而言,问题在于%2.f参数。您可能需要

String.format ("Total is: $%5.2f", total);

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

问题在于%2.f参数。您可能希望

String.format ("Total is: $%5.2f", total);
在本例中,5是字段的总宽度(包括小数点),2是小数位数。

是:

如您所见,一个
后面必须跟一个
精度值

您的值(
%2.f
)无效。
如果要输出为
$123.45
,则需要翻转
2
,而
%.2f
是:

如您所见,一个
后面必须跟一个
精度值

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