2015-02-23 113 views
1

我有一个常数是负值,我希望输出结果为正值。当我添加%+ f时,它不会执行任何操作,并且输出仍然出现-15,123.45?printf(“%+ f”,..)仍然显示负数

public static final double n2 = -15123.456789; 

System.out.printf("%+,.2f\n", n2); 
+2

'System.out.printf( “%+ ,. 2F \ n”,-N2);' – kjbartel 2015-02-23 02:25:38

+7

Math.abs()是你的朋友。 – zubergu 2015-02-23 02:30:46

回答

0

格式字符串"%+,.2f\n"只定义了必须打印值的格式。 它不会更改实际值。如果您的输入值为负值,则输出字符串将显示为负值。这就像,当你使东西加粗时,它不会改变为另一件事

要将该值转换为相反符号( - to +,+ to - ),可以将值乘以-1感谢kjbartel作为快捷方式。

System.out.printf("%+,.2f\n", -1 * n2); 
// or 
System.out.printf("%+,.2f\n", -n2); 

将值转换始终是积极的( - 到+,+到+),你可以使用Math.abs感谢zubergu的小费。

System.out.printf("%+,.2f\n", Math.abs(n2));