使用前导符号设置数字的格式

2022-08-31 20:56:15

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

负数以前导正确显示,但显然正数不以 开头显示。-+

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


答案 1

使用负子模式,如 DecimalFormat 的 javadoc 中所述。

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

产生(在我的法语区域设置中,空格是分组分隔符,逗号是小数分隔符):

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

答案 2

用于格式化程序的 API 提供了一个示例:

Formatter formatter = new Formatter();
System.out.println(formatter.format(Locale.FRANCE, "e = %+10.4f", Math.E));
//e =    +2,7183

推荐