【发布时间】:2011-02-17 16:03:10
【问题描述】:
我正在使用 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 错误仍然存在。我究竟做错了什么?我误解了; 的用途吗?
【问题讨论】:
标签: java decimalformat