猿问

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

我想使用数字格式在数字为正数或负数时添加不同的文本

前任 :

-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);


慕妹3242003
浏览 157回答 2
2回答

慕码人8056858

您可以在格式字符串中执行此操作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))。

一只萌萌小番薯

设置 的正前缀和负前缀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
随时随地看视频慕课网APP

相关分类

Java
我要回答