以“ 0”结尾的浮点值不能用两个小数点表示

时间:2019-07-18 13:29:02

标签: 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.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

如何使此正确?

1 个答案:

答案 0 :(得分:2)

您的Float.valueOf正在重新格式化float,以删除结尾的0,因为 float 不能保留结尾的0。String表示{ {1}}返回 can 。如果您尝试打印:

  

decimalFormat.format((float)value / 100)

浮点数将正确打印。删除对.format的呼叫,并从.valueOf返回String

currencyDecimalFormat