我对从字符串到长值的转换有疑问。示例:
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)
有什么主意吗? 谢谢!
答案 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是最终结果。