2012-08-02 90 views
0

我正在创建.jsp页面并且reiceve关于它的错误;java字符串值应该在double.valueof中使用(..)

 String energyv=""; 

     int number= Integer.parseInt(request.getParameter("number")); 
     energyv="_"+number; 
    * 
    * 
    * 
     if (tokenNumber == 2 && found && value1.equals("")) { 
     value1= nextToken; 
     if (value1.equals("")) 
     found = false; 

     } 

     if (tokenNumber == 3 && found && value2.equals("")) { 
     value2= nextToken; 

     } 

* 
* 
* 
     Double activeTotalLong = Double.valueOf("value" + energyv); 

* 
* 
* 

当试图做到这一点,我收到tomcat错误;

2012年8月2日11:17:。。30097 ERROR HTTP-8080-4 org.apache.catalina.core.ContainerBase [卡塔利娜] [本地主机] [/ PlantVisorPRO] [JSP] - 的Servlet .service()对于servlet jsp抛出异常java.lang.NumberFormatException:对于输入字符串:“value2”at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224) at java.lang.Double.valueOf(Double。 java:475)

Java可以创建我的值(如value2或value1),但我该如何解决字符串问题?

回答

2
Double activeTotalLong = Double.valueOf("value" + energyv); 

该方法以字符串表示有效数字。

“value2”不是有效的数字格式。 Double.valueOf()的

使用范例:

Double d; 
d = Double.valueOf("23.72"); 
d = Double.valueOf("-1.247002"); 
d = Double.valueOf("1e9"); // e = *10^() 

那么,你正在试图做的是,得到的value2value1值。而你真正写的是

"value" + 2 
= "value2" // This is a string! not a variable! 

因此,要解决这个问题,有两种选择:

  • 使用数组
  • 使用的if-else

使用数组:

String values[] = new String[2]; 
values[0] = value1; 
values[1] = value2; 
Double.valueOf(values[energyv - 1]); 

使用的if-else:

Double activeTotalLong; 
if (energyv == 1) 
{ 
    activeTotalLong = Double.valueOf(value1); 
} else if (energyv == 2) 
{ 
    activeTotalLong = Double.valueOf(value2); 
} 
+0

是感谢您的回答。我尝试了数组func。它正在工作。 – user1570842 2012-08-02 10:41:32

相关问题