printf(“%+ f”,..)仍显示负数

时间:2015-02-23 02:22:09

标签: java printf

我有一个不变的常数,我希望输出结果是正数。当我添加%+ f时它没有做任何事情,输出仍然出现-15,123.45?

public static final double n2 = -15123.456789;

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

1 个答案:

答案 0 :(得分:0)

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

要将值转换为相反的符号( - 到+,+到 - ),您可以将值乘以-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));