gpt4 book ai didi

java - 将 String 解析为 Double 时保留科学记数法

转载 作者:行者123 更新时间:2023-11-30 06:13:05 25 4
gpt4 key购买 nike

我正在使用 Double.parseDouble() 将用户输入从字符串转换为科学记数法。但我注意到这仅适用于以下范围:

value with exponent number >=7 (ie: 1e7) for positive exponent or
value with exponent number <= -4 (ie: 1e-4) for negative exponent.

下面的代码转换 1e7 正确地作为 1e7 但是 1e4 错误地为 10000

public Double convert(String value){
DecimalFormat df = new DecimalFormat("0.##E0");
String formattedVal = df.format(value);
return Double.parseDouble(formattedVal);
}

最佳答案

double 没有内在格式,它只是位。您所看到的是在 Double 上调用 toString() 的结果。默认情况下,Double.toString() 仅在某些情况下使用科学记数法。如果您希望在将其转换为字符串以进行显示时具有特定的表示法,请再次使用 DecimalFormat。

public Double convert(String value){
DecimalFormat df = new DecimalFormat("0.##E0");
String formattedVal = df.format(value);
return Double.parseDouble(formattedVal);
}

DecimalFormat df = new DecimalFormat("0.##E0");
Double d = convert("1e4");
String dAsString = df.format(d);
System.out.println(dAsString);

关于java - 将 String 解析为 Double 时保留科学记数法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49821700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com