为了账号安全,请及时绑定邮箱和手机立即绑定

Java 数字格式如何将 +/- 符号更改为自定义文本

Java 数字格式如何将 +/- 符号更改为自定义文本

慕妹3242003 2023-06-08 14:15:30
我想使用数字格式在数字为正数或负数时添加不同的文本前任 :-3.5 =>(向下)3.5+3.5 =>(向上)3.5我在 DecimalFormatSymbols 中找到了一些东西,但只能更改减号并且只能更改单个字符还有其他使用数字格式化程序的简单方法吗?DecimalFormatSymbols unusualSymbols = new DecimalFormatSymbols(currentLocale);unusualSymbols.setDecimalSeparator('|');unusualSymbols.setGroupingSeparator('^');unusualSymbols.setMinusSign();String strange = "#,##0.###";DecimalFormat weirdFormatter =        new DecimalFormat(strange, unusualSymbols);weirdFormatter.setGroupingSize(4);String bizarre = weirdFormatter.format(12345.678);System.out.println(bizarre);
查看完整描述

2 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

您可以在格式字符串中执行此操作DecimalFormat

(up) #,##0.###;(down) #,##0.###

链接的文档包含格式字符串的完整语法定义,它开始于:

Pattern:
         PositivePattern
         PositivePattern ; NegativePattern

这表示由分号 ( ) 分隔的可选第二格式字符串;将用于负值。

进一步阅读:

PositivePattern:
        Prefix_opt Number Suffix_opt
NegativePattern:
        Prefix_opt Number Suffix_opt
Prefix:
        any Unicode characters except \uFFFE, \uFFFF, and special characters
Suffix:
        any Unicode characters except \uFFFE, \uFFFF, and special characters

每个模式(正负)都包含一个数字格式字符串 ( Number),带有可选的前缀和后缀字符串。这些附加部分可以是您喜欢的任何字符串(包括(up)(down))。


查看完整回答
反对 回复 2023-06-08
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

设置 的正前缀和负前缀DecimalFormat

DecimalFormat formatter = new DecimalFormat();
formatter.setPositivePrefix("(up) ");
formatter.setNegativePrefix("(down) ");
System.out.println(formatter.format(-3.5));
System.out.println(formatter.format(3.5));

输出:

(down) 3.5
(up) 3.5


查看完整回答
反对 回复 2023-06-08
  • 2 回答
  • 0 关注
  • 132 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信