我是一个指数字符串值
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)
我做错了什么?
答案 0 :(得分:2)
您的代码没有问题。要查看此内容,请考虑以下代码段:
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,则表示您为其提供了null参数。你的答案中的代码行不会给它一个空参数。所以我想在你的完整代码中你必须给Double.parseDouble一个null参数而你却没有意识到它。
根据Double.parseDouble()文档,它调用Double.valueOf(),Double.valueOf()的文档指定你可以给它指数值。