我进行数字格式化以指示货币值,如下所示:
private static DecimalFormat decimalFormat = new DecimalFormat("0.00");
List<String> paidAmounts = new ArrayList<>();
for (Invoice invoice : invoices) {
paidAmounts.add(String.valueOf
("$"+Formatter.currencyDecimalFormat(invoice.getAmount())));
}
public static Float currencyDecimalFormat(int value) {
return Float.valueOf(decimalFormat.format((float) value / 100));
}
发票类别:
private int amount;
public int getAmount() {
return amount;
}
但是以'0'结尾的值未格式化为所需格式。
$18.5
$16.8
$105.59
如何使此正确?
答案 0 :(得分:2)
您的Float.valueOf
正在重新格式化float
,以删除结尾的0
,因为 float 不能保留结尾的0。String
表示{ {1}}返回 can 。如果您尝试打印:
decimalFormat.format((float)value / 100)
浮点数将正确打印。删除对.format
的呼叫,并从.valueOf
返回String
:
currencyDecimalFormat