java.util.UnknownFormatConversionException: conversion = '2'



我不断收到此转换错误:

> 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 是小数位数。

最新更新