我做了一个数字格式来指示货币值,如下所示:
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
如何使其正确?
您的Float.valueOf
正在重新格式化float
以删除尾随0
,因为浮点数无法容纳尾随的 0。 .format
返回的String
可以。 如果您尝试打印:
decimalFormat.format((float( value/100(
浮点数将正确打印。 删除此对.valueOf
的调用,改为从currencyDecimalFormat
返回String
:
public static String currencyDecimalFormat(int value) {
return decimalFormat.format((float) value / 100);
}