JAVA-会话字符串(带点)到Long

时间:2018-10-18 03:15:31

标签: java type-conversion

我对从字符串到长值的转换有疑问。示例:

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)

有什么主意吗? 谢谢!

4 个答案:

答案 0 :(得分:1)

4.0不是一个很长的值,它是一个双值,请尝试Double.parseDouble(a)

答案 1 :(得分:1)

您正试图将不支持字符.的字符串隐藏到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)

答案 2 :(得分:1)

您还可以使用Double.valueOf(a)

Double.parseDouble(String)将返回原始的double类型。 Double.valueOf(String)将返回Double类型的包装对象。

根据您的需要,您可以使用上述其中之一

答案 3 :(得分:0)

Ur code String a =“ 4.0”; 长,双, 如果U要与Long对话,则需要先与Double.type对话。 你应该 :   Double d = Double.valueOf(a);   然后   Long re = d.longValue()或使用Ur方法Long re = d.toLong  re是最终结果。