如何将Double转换为带指数符号的String

时间:2019-05-30 15:16:24

标签: java number-formatting

我想将Double转换为带有指数符号的String。 例如,Double值转换为String后为4.4395749E7,它应为4.4395749E+07(与MS Excel中的显示方式相同)。

我尝试过double.toString(),但是它正在转换为4.4395749E7

Double doubleValue = 44395749d;
doubleValue.toString();

预期为4.4395749E+07,但实际为4.4395749E7

2 个答案:

答案 0 :(得分:2)

您可以使用String.format(),login是指数的格式代码

E

答案 1 :(得分:1)

您可以使用DecimalFormat设置电话号码的格式:

Double value = 44395749d;
DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance();
if (value > 1 || value < -1) {
    symbols.setExponentSeparator("E+");
}
DecimalFormat decimalFormat = new DecimalFormat("0E00", symbols);
decimalFormat.setMaximumFractionDigits(Integer.MAX_VALUE);
System.out.println(decimalFormat.format(value));

这将根据需要使用DecimalFormatSymbols为指数添加+value > 1value < -1)。要获取所有分数数字,请使用setMaximumFractionDigits(Integer.MAX_VALUE)。您可以根据需要简单地更改格式。

结果将为4.4395749E+07

请牢记在需要时设置特定的语言环境:

DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance(Locale.ENGLISH)