Java 以'结尾的浮点值;0';不能用两个小数点表示
我使用数字格式表示货币值,如下所示:Java 以'结尾的浮点值;0';不能用两个小数点表示,java,currency,number-formatting,formatter,Java,Currency,Number Formatting,Formatter,我使用数字格式表示货币值,如下所示: private static DecimalFormat decimalFormat = new DecimalFormat("0.00"); List<String> paidAmounts = new ArrayList<>(); for (Invoice invoice : invoices) { paidAmounts.add(String.valueOf ("$"+Formatter.curren
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));
}
但以“0”结尾的值未格式化为所需格式
$18.5
$16.8
$105.59
如何使之正确 您的
Float.valueOf
正在重新格式化Float
以删除尾随的0
,因为Float不能容纳尾随的0。格式
返回的字符串
。如果您尝试打印:
十进制格式((浮点)值/100)
浮点数将正确打印。删除对.valueOf
的调用,并从currencyDecimalFormat
返回字符串
:
public static String currencyDecimalFormat(int value) {
return decimalFormat.format((float) value / 100);
}
public static String currencyDecimalFormat(int value) {
return decimalFormat.format((float) value / 100);
}