我想使用數字格式在數字為正數或負數時添加不同的文本前任 :-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)
)。

一只萌萌小番薯
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
添加回答
舉報
0/150
提交
取消