猿问

JAVA - 将字符串(带点)转换为 Long

我有关于从字符串转换为长值的问题。例子 :


String a = "4.0";

Long l= Long.parseLong(a);

当我执行时,得到异常:


Exception in thread "main" java.lang.NumberFormatException: For input string: "4.0"

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

at java.lang.Long.parseLong(Long.java:589)

at java.lang.Long.parseLong(Long.java:631)

at com.tests.Test2.main(Test2.java:69)

任何的想法?谢谢!


烙印99
浏览 323回答 3
3回答

互换的青春

4.0 不是一个长值 这是一个双倍,尝试 Double.parseDouble(a)

杨__羊羊

您正试图将包含不受支持的字符 , 的字符串.转换为Long. 这不受https://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#parseLong(java.lang.String)支持。尝试Long l = Double.valueOf(a).longValue();:https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#valueOf(java.lang.String)。

郎朗坤

你也可以使用 Double.valueOf(a)Double.parseDouble(String) 将返回一个原始的 double 类型。Double.valueOf(String) 将返回一个 Double 类型的包装对象。根据您的需要,您可以使用上述之一
随时随地看视频慕课网APP

相关分类

Java
我要回答