我有一个不变的常数,我希望输出结果是正数。当我添加%+ f时它没有做任何事情,输出仍然出现-15,123.45?
public static final double n2 = -15123.456789;
System.out.printf("%+,.2f\n", n2);
答案 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));