Java 数字格式如何将 +/- 符号更改为自定义文本
Java Number format how to change +/- sign to custom text
我想使用数字格式在数字为正数或负数时添加不同的文本
例如:
-3.5 => (down) 3.5
+3.5 => (up) 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);
设置正负前缀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
您可以在 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)
)。
我想使用数字格式在数字为正数或负数时添加不同的文本
例如:
-3.5 => (down) 3.5
+3.5 => (up) 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);
设置正负前缀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
您可以在 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)
)。