当前位置: 代码迷 >> J2EE >> java.lang.ClassCastException: java.lang.String cannot be
  详细解决方案

java.lang.ClassCastException: java.lang.String cannot be

热度:312   发布时间:2016-04-22 03:39:44.0
String转换为double类型,棘手
小弟在做通过价格查询电影信息的WEB应用,可是通过request.getParameter()的字符串转换成double,用了Double.valueOf().doubleValue();和Double.parse(str)却总是报
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Double错误。
然而不采用服务器,直接用main方法测试 却成功无异常。纠结很久了,
望大师提点。。

------解决方案--------------------
把你在web应用里面的代码贴出来看看,这个其实很容易的一件事
首先String str=request.getParameter("xxx")
然后double d=Double.parse(str);
怎么可能报类型转换错误
------解决方案--------------------
贴完整的reqeust接受参数到转换的代码,如楼上所说这是个很简单容易的事
表示有压力jdk1.6不存在Double.parse()这个方法Double.valueOf("6.0")是可以正常使用的
------解决方案--------------------
贴点代码出来呀、
Double.valueOf("6.0")是可以正常使用的
------解决方案--------------------
那只能说明你request.getParameter()返回的字符串不是double类型
转换之前打印一下request.getParameter()的返回值看看是什么
------解决方案--------------------
楼上的童鞋说的很对,出现类型转换异常只能说明request.getParameter() 方法返回的字符串不是double类型能转换的其中掺杂了别的字符。
------解决方案--------------------
探讨

楼上的童鞋说的很对,出现类型转换异常只能说明request.getParameter() 方法返回的字符串不是double类型能转换的其中掺杂了别的字符。

------解决方案--------------------
楼主,
1、首先打印出来要转换的STR的构造,看看是不是可以转化为DOUBLE型
2、检查下是否有空格或其它的符号
------解决方案--------------------
先判断啊,是否符合

然后Double.parse(str);

------解决方案--------------------
同意4楼说的问题
------解决方案--------------------
探讨
那只能说明你request.getParameter()返回的字符串不是double类型
转换之前打印一下request.getParameter()的返回值看看是什么

------解决方案--------------------
探讨
那只能说明你request.getParameter()返回的字符串不是double类型
转换之前打印一下request.getParameter()的返回值看看是什么

------解决方案--------------------
request.getParameter()返回的是Object类型
  相关解决方案