我无法在Googles或SO中找到答案,这让我感到烦恼。
阅读the javadocs,我发现"如果存在明确的否定子模式,则仅用于指定否定前缀和后缀;数字,最小数字和其他特征都与正模式相同。这意味着"#,## 0.0#;(#)"产生与#34;#,## 0.0#;(#,## 0.0#)和#34;。"完全相同的行为。但是,此代码似乎并未遵循:
import java.text.DecimalFormat;
public class NumberFormatTest {
public static void main(String args[]) {
DecimalFormat df = new DecimalFormat("#,###;(#,###)");
System.out.println(df.format(-1234.0));
df.applyPattern("#,###;(#)");
System.out.println(df.format(-1234.0));
}
}
输出
(1,234)
(1,234
(注意第2行中缺少的paren)
我错过了什么?
答案 0 :(得分:2)
DecimalFormat中的错误。请参阅错误报告http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6609740
答案 1 :(得分:-2)
尝试一下
DecimalFormat df=new DecimalFormat("#,##0.0");
System.out.println(df.format(-12999.0));// the output is: -12 999,0
这是有效的