我有一个负常数,我希望输出为正。当我添加 %+f 时,它没有执行任何操作,输出仍然是 -15,123.45?
public static final double n2 = -15123.456789;
System.out.printf("%+,.2f\n", n2);
最佳答案
格式字符串“%+,.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));
关于java - printf ("%+f", ..) 仍然显示负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28666057/