解决办法
1、new BigDecimal
我们使用了BigDecimal 类来处理科学计数法表示的数字。将科学计数法表示的数字作为字符串传递给BigDecimal构造函数,它将自动将其转换为普通的数字表示
java
import java.math.BigDecimal;
public class ScientificToDecimal {
public static void main(String[] args) {
String decimalNumber = "1.3860490888E8";
String result = StringUtils.isNotBlank(decimalNumber) ? new BigDecimal(decimalNumber ).toPlainString() : new BigDecimal("").toPlainString()
System.out.println(result );//138604908.88
}
}
2、使用字符串的替换
我们首先将科学计数法表示的数字按照字符"E"进行分割,得到两个部分:底数和指数。然后,将底数部分转换为double 类型,并使用Math.pow方法计算出最终的十进制表示
java
public class ScientificToDecimal {
public static void main(String[] args) {
String scientificNumber = "2.3456789E10";
String[] parts = scientificNumber.toUpperCase().split("E");
double decimalNumber = Double.parseDouble(parts[0]) * Math.pow(10, Double.parseDouble(parts[1]));
System.out.println(decimalNumber);
}
}