在科学记数法中设置双精度值的格式

2022-09-01 10:18:56

我有一个双倍的数字,我需要像.223.456545434340.223x10e+2

如何在Java中执行此操作?


答案 1
    System.out.println(String.format("%6.3e",223.45654543434));

结果

    2.235e+02

这是我得到的最接近的。

更多信息 : http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax


答案 2

这个答案将为4万多名正在谷歌搜索“java科学记数法”的人节省时间。

%X.YE 中的 Y 是什么意思?

和 之间的数字是小数位数(不是有效数字)。.E

System.out.println(String.format("%.3E",223.45654543434));
// "2.235E+02"
// rounded to 3 decimal places, 4 total significant figures

该方法要求您指定要舍入到的小数位数。如果您需要保留原始数字的确切意义,那么您将需要一个不同的解决方案。String.format

X 在 %X.YE 中是什么意思?

和 之间的数字是字符串将占用的最小字符数(此数字不是必需的,如上所示,如果省略它,字符串将自动填充)%.

System.out.println(String.format("%3.3E",223.45654543434));
// "2.235E+02" <---- 9 total characters
System.out.println(String.format("%9.3E",223.45654543434));
// "2.235E+02" <---- 9 total characters
System.out.println(String.format("%12.3E",223.45654543434));
// "   2.235E+02" <---- 12 total characters, 3 spaces
System.out.println(String.format("%12.8E",223.45654543434));
// "2.23456545E+02" <---- 14 total characters
System.out.println(String.format("%16.8E",223.45654543434));
// "  2.23456545E+02"  <---- 16 total characters, 2 spaces

推荐