我正在使用一个库,它允许我使用DecimalFormat模式配置数字的格式。我需要删除减号以显示数字的绝对值。我试过“0.00 ###; 0.00 ###”和“0.00 ###;#”都没有成功。我可以选择任何减号(例如“0.00 ###;(0.00 ###)”)但我根本没有任何标志?
提前感谢您的建议,
汤姆
答案 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))