【发布时间】:2021-10-21 10:33:50
【问题描述】:
我需要将一些浮点数转换为如下格式:2,5000E-003, 2,8625E+000
我知道我可以这样做:
String.format("%s,%sE%s", digitInt, digitAfterDot, digitDegree)
但我希望有人知道更聪明和巧妙的解决方案
【问题讨论】:
标签: java formatting
我需要将一些浮点数转换为如下格式:2,5000E-003, 2,8625E+000
我知道我可以这样做:
String.format("%s,%sE%s", digitInt, digitAfterDot, digitDegree)
但我希望有人知道更聪明和巧妙的解决方案
【问题讨论】:
标签: java formatting
你可以使用:
String.format("%1.4e",12345.67890123)
这样的结果是:
1,2346e+04
这里有一些documentation
编辑
如果指数中需要 3 位数字,可以使用DecimalFormat Formatter:
DecimalFormat format = new DecimalFormat("0.0000E000");
System.out.print(format.format(12345.67890123f));
哪些输出:
1,2346E004
请注意,如果指数为正,则它不带有正号。 您可以通过以下方式解决此问题:
DecimalFormat format = new DecimalFormat("0.0000E000");
String result = format.format(12345.67890123f);
if (!result.contains("E-")) {
result = result.replace("E", "E+");
}
【讨论】: