格式化带前导符号的数字

2022-01-12 00:00:00 numbers currency formatting java

如何在 Java 中格式化带有前导符号的数字?

How do I format in Java a number with its leading sign?

前导-可以正确显示负数,但是+明显不显示正数.

Negative numbers are correctly displayed with leading -, but obviously positive numbers are not displayed with +.

如何在 Java 中做到这一点?我当前的货币格式字符串是 ###,###,###,###,##0.00 (是的,我需要格式化正/负货币值)

How to do that in Java? My current currency format string is ###,###,###,###,##0.00 (yes, I need to format positive/negative currency values)

推荐答案

使用否定子模式,如 DecimalFormat 的 javadoc.

Use a negative subpattern, as described in the javadoc for DecimalFormat.

DecimalFormat fmt = new DecimalFormat("+#,##0.00;-#");
System.out.println(fmt.format(98787654.897));
System.out.println(fmt.format(-98787654.897));

产生(在我的法语语言环境中,空格是分组分隔符,逗号是小数分隔符):

produces (in my French locale where space is the grouping separator and the comma is the decimal separator) :

+98 787 654,90
-98 787 654,90

相关文章