使用DecimalFormat时如何防止减号?

时间:2014-06-03 17:32:59

标签: java sign number-formatting

我正在使用一个库,它允许我使用DecimalFormat模式配置数字的格式。我需要删除减号以显示数字的绝对值。我试过“0.00 ###; 0.00 ###”和“0.00 ###;#”都没有成功。我可以选择任何减号(例如“0.00 ###;(0.00 ###)”)但我根本没有任何标志?

提前感谢您的建议,

汤姆

4 个答案:

答案 0 :(得分:6)

为什么在格式化数字之前不能拨打Math.abs()

int myNum = -123;
myNum = Math.abs(myNum);
System.out.println(myNum); // 123

答案 1 :(得分:4)

如果您真的无法在其他答案中提及Math.abs使用绝对值,则可以更改DecimalFormat的{​​{3}}中的减号。请注意,您需要将值设置回DecimalFormat,因为它在调用DecimalFormatSymbols时会返回不同的实例。

你也可以使用getDecimalFormatSymbols作为kdgregory评论。

答案 2 :(得分:4)

如果使用" 0.00 ###; 0.00 ###" (注意分号后面的空格)不会显示负号。

答案 3 :(得分:1)

它可能不是你想要的,但为什么不使用Math.abs()而只是这样做:

new DecimalFormat("0.00###").format(Math.abs(value))