DecimalFormat子模式边界不能正常工作

我使用DecimalFormat创建一个总长度为6个字符的格式化小数。起初我使用了
new DecimalFormat("000.00")
的格式字符串,但这给了我一个负数的错误。添加减号并使第一个空格更大,从而得到
-005.25
而不是
-05.25
。 我已经能够使用以下代码解决此问题
DecimalFormat fmt;  
if(netAmt < 0){  
    fmt = new DecimalFormat("00.00");  
}else{  
    fmt = new DecimalFormat("000.00");  
}  

System.out.println(fmt.format(netAmt));
但是DecimalFormat具有
;
字符来格式化负数而不是正数。我无法正常工作。据我所知,以下代码应该像上面这样工作。
DecimalFormat fmt = new DecimalFormat("000.00;00.00");  

System.out.println(fmt.format(netAmt));
结果是
;
之前的模式用于负数和正数,导致
-005.25
错误保留。我究竟做错了什么?我误解了
;
的用途吗?     
已邀请:
以下字符串模式是否对您有所帮助:
"%06.2f%n"
固定宽度为6,前面有“0”填充? 例
System.out.println(String.format("%06.2f%n",1.3));
System.out.println(String.format("%06.2f%n",-3.323));
当数字大于3位数时,您希望行为是什么,即不适合?     
我很确定忽略第二种模式,只使用特定于否定的部分,例如 - 标志或()等 这是我从JavaDocs阅读以下段落的理解   DecimalFormat模式包含正负子模式,例如“#,## 0.00;(#,## 0.00)”。每个子模式都有前缀,数字部分和后缀。负子模式是可选的;如果不存在,那么前缀为局部减号(在大多数区域设置中为“ - ”)的正子模式将用作负子模式。也就是说,仅“0.00”相当于“0.00; -0.00”。如果存在明确的否定子模式,则仅用于指定否定前缀和后缀;数字,最小数字和其他特征都与正模式相同。这意味着“#,## 0.0#;(#)”产生与“#,## 0.0#;(#,## 0.0#)”完全相同的行为。     

要回复问题请先登录注册