如何在 java 中用逗号分隔零填充 String.format 双打?

How do I comma separate zero padded String.format doubles in java?

我正在尝试使用 String.format 获取逗号分隔、零填充的双打。 我正在使用:

"%0,9.2f", unitPrice

单价翻倍。例如,当 unitPrice 为 44.99 时,当我想要 00,044.99 时,我得到 000044.99。如果单价是 4499 而不是我想要的 04,499.00。

您可以使用 DecimalFormatNumberFormat 具体子类来格式化十进制数。它具有各种旨在解析和格式化数字的功能在任何语言环境中,包括支持西方、阿拉伯和印度数字) like

DecimalFormat df = new DecimalFormat("00,000.00");
System.out.println(df.format(44.99));
System.out.println(df.format(4499));

输出是(按要求)

00,044.99
04,499.00

这仅适用于等于或大于 1000 的值。检查了 Java 8 的源代码并且 零填充 之后完成插入组分隔符.

您必须像@Elliot Frisch 的回答一样编写自己的格式。

请注意,他的答案取决于语言环境,但您可以通过提供 DecimalFormatSymbols 的本地化实例来强制使用逗号 ,

new DecimalFormat("00,000.00", DecimalFormatSymbols.getInstance(Locale.US))