我不断收到此转换错误:
> 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);
语法
为:
%[argument_index$][flags][width][.precision]conversion
如您所见,.
后必须跟一个precision
值。
您的值 ( %2.f
) 无效。
如果要输出为 $123.45
,则需要翻转2
和.
:%.2f
问题出在 %2.f 参数上。你可能想要类似的东西
String.format ("Total is: $%5.2f", total);
在此示例中,5 是字段的总宽度(包括小数点),2 是小数位数。