DecimalFormat 负模式奇怪?
Posted
技术标签:
【中文标题】DecimalFormat 负模式奇怪?【英文标题】:DecimalFormat negative pattern oddity? 【发布时间】:2014-08-12 23:10:52 【问题描述】:我在 Google 或 SO 中找不到答案,这让我很烦。
阅读the javadocs,我发现“如果有明确的否定子模式,它仅用于指定否定前缀和后缀;位数、最小位数和其他特征都与肯定模式相同。这意味着 "#,##0.0#;(#)" 产生与 "#,##0.0#;(#,##0.0#)" 完全相同的行为。但是,此代码似乎没有遵循:
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 行中缺少的括号)
我错过了什么?
【问题讨论】:
【参考方案1】:十进制格式中的错误。请参阅错误报告http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6609740
【讨论】:
【参考方案2】:尝试一下
DecimalFormat df=new DecimalFormat("#,##0.0");
System.out.println(df.format(-12999.0));// the output is: -12 999,0
这是有效的
【讨论】:
确实如此,但它没有回答问题。以上是关于DecimalFormat 负模式奇怪?的主要内容,如果未能解决你的问题,请参考以下文章