在java中如何用逗号分隔零填充字符串.format double?
我正在尝试使用String.format获取逗号分隔的零填充双精度。 我正在使用:在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的值。
"%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))