java.lang.NumberFormatException:对于输入字符串:“0.10”

时间:2014-07-20 14:56:43

标签: java casting numbers

为什么我会得到java.lang.NumberFormatException:对于输入字符串:" 0.10"

Long.valueOf("0.10")

4 个答案:

答案 0 :(得分:5)

该String不表示long值,而是浮点值,更好地表示为double,float或BigDecimal。

答案 1 :(得分:2)

0.10是浮点数而不是long。使用FloatDouble

中的一种转换方法
double value = Double.valueOf("0.10");

答案 2 :(得分:1)

原因是Long.valueOf(String)仅执行解析,但拒绝执行任何强制/舍入/缩小转换。这在Javadoc

中有明确解释
  

返回一个持有指定String值的Long对象。该参数被解释为表示带符号的十进制长度,就像该参数被赋予parseLong(java.lang.String)方法一样。结果是一个Long对象,表示字符串指定的整数值。

为了避免对您未来的问题产生误解,请务必提供期望,以便读者理解您的问题“为什么”的角度。

答案 3 :(得分:0)

java中的浮点数默认为double,如果没有强制转换,则无法从double转换为long。你可以尝试

Double.parseDouble("0.10");

如果你想要多久,你可以做到

double doubleValue = Double.parseDouble("0.10");
long longVal = (long)doubleValue ;
System.out.println(longVal);