我一直收到此转化错误:
> 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 :(得分: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