在java中如何用逗号分隔零填充字符串.format double?

在java中如何用逗号分隔零填充字符串.format double?,java,number-formatting,Java,Number Formatting,我正在尝试使用String.format获取逗号分隔的零填充双精度。 我正在使用: "%0,9.2f", unitPrice 单价是双倍的。例如,当单价为44.99时,当我想要00044.99时,我得到000044.99。如果单价是4499,我会得到想要的04499.00。您可以使用一个(格式化十进制数字的NumberFormat的具体子类。它有各种各样的功能,可以在任何语言环境下解析和格式化数字,包括支持西文、阿拉伯文和印度文数字),比如 输出为(按要求) 这仅适用于等于或大于1000的值。

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

"%0,9.2f", unitPrice
单价是双倍的。例如,当单价为44.99时,当我想要00044.99时,我得到000044.99。如果单价是4499,我会得到想要的04499.00。

您可以使用一个(格式化十进制数字的
NumberFormat
的具体子类。它有各种各样的功能,可以在任何语言环境下解析和格式化数字,包括支持西文、阿拉伯文和印度文数字),比如

输出为(按要求)


这仅适用于等于或大于1000的值。检查了Java8的源代码,零填充是在插入组分隔符之后完成的

您必须编写自己的格式,如@Elliot Frisch的答案

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

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

谢谢你的补充解释,本地化现在不是一个问题,这主要是为了我自己的学习。
00,044.99
04,499.00
new DecimalFormat("00,000.00", DecimalFormatSymbols.getInstance(Locale.US))