按照下面给出的特定格式将 float 和 double 格式化为科学记数法

Fomat float and double into scientific notation in specific format given below

我已经在这里问了一个问题,它被标记为重复,虽然它没有解决我的问题,我试图重新打开但它是徒劳的。 Forcing BigDecimals to use scientific notation

format decimal number to specific exponential format in java

因此,在将我的问题标记为重复之前,请确认它与我的问题相关。

问题:

给定一个浮点数或双精度数 op 到特定格式 例如:13.33 = 0.1333 E+02 0.00023 = 0.23 E-03

数字的非零位从小数点后开始。

如何使用十进制格式来实现这种输出。

如你所愿,数字的非零数字从小数点后开始。

你可以做到

    BigDecimal x = new BigDecimal("13.33");
    DecimalFormat frmt = new DecimalFormat(".00E00");
    String formatted = "0" + frmt.format(x.doubleValue());
    System.out.println("result: " + formatted);

结果

13.33
result: 0.13E02
0.00023
result: 0.23E-03