将指数字符串值转换为双精度 - Java
Convert exponential string value to double - Java
我有一个指数字符串值
String str = "2.00000181334612E15";
我正在尝试将其转换为双精度值。
Double d = (Double.parseDouble(str));
但是我得到如下异常,
Exception in thread "main" java.lang.NullPointerException
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1047)
at java.lang.Double.parseDouble(Double.java:521)
at com.swissre.lhrte.poi.test.TestClient.main(Test.java:133)
我做错了什么?
你的代码没有问题。要看到这一点,请考虑以下代码段:
public class exp {
public static void main(String[] args) {
String str = "2.00000181334612E15";
Double d = (Double.parseDouble(str));
System.out.println(d);
}
};
如果您从 Double.parseDouble 得到 NullPointerException,则意味着您给了它一个空参数。您答案中的代码行没有给它一个空参数。所以我想在你的完整代码中,你必须在没有意识到的情况下给 Double.parseDouble 一个空参数。
根据 Double.parseDouble() 文档,它调用 Double.valueOf() 并且 Double.valueOf() 的文档指定您可以给它指数值。
我有一个指数字符串值
String str = "2.00000181334612E15";
我正在尝试将其转换为双精度值。
Double d = (Double.parseDouble(str));
但是我得到如下异常,
Exception in thread "main" java.lang.NullPointerException
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1047)
at java.lang.Double.parseDouble(Double.java:521)
at com.swissre.lhrte.poi.test.TestClient.main(Test.java:133)
我做错了什么?
你的代码没有问题。要看到这一点,请考虑以下代码段:
public class exp {
public static void main(String[] args) {
String str = "2.00000181334612E15";
Double d = (Double.parseDouble(str));
System.out.println(d);
}
};
如果您从 Double.parseDouble 得到 NullPointerException,则意味着您给了它一个空参数。您答案中的代码行没有给它一个空参数。所以我想在你的完整代码中,你必须在没有意识到的情况下给 Double.parseDouble 一个空参数。
根据 Double.parseDouble() 文档,它调用 Double.valueOf() 并且 Double.valueOf() 的文档指定您可以给它指数值。