java - printf ("%+f", ..) 仍然显示负数

标签 java printf

我有一个负常数,我希望输出为正。当我添加 %+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/

相关文章:

java - 可以使用 GCJ 生成可从 Python 调用的库吗?

c - printf函数参数

java - 索引超出范围(文件读取)

php - PHP 中的 sprintf 长度说明符

java - 计算 sin 30 的值

java - 休息 API 示例

Java-使用jakson将json转换为复杂对象

java - 同一类算法中的不同原始数据类型条目

C - 打印动态数组

c++ - 如何通过 GCC 检测 vsnprintf 中的隐式转换