如果Double.Parse(list_numbers.Item(i)中,possibledouble)检查如果字符串是双
list_numbers是字符串的列表
list_numbers.Item(I)= “0.000”
possibledouble是双
调试器返回“输入字符串是不正确的格式”
我认为双解析会转换成字符串双倍格式的“0.0”,但它给了我一个错误。请帮忙
如果Double.Parse(list_numbers.Item(i)中,possibledouble)检查如果字符串是双
list_numbers是字符串的列表
list_numbers.Item(I)= “0.000”
possibledouble是双
调试器返回“输入字符串是不正确的格式”
我认为双解析会转换成字符串双倍格式的“0.0”,但它给了我一个错误。请帮忙
你的代码也许应该是这样的(参见下面的解释)
If Double.TryParse(list_numbers.Item(i), possibledouble) Then
Select Case possibledouble
Case 0 To 49.99
list_numbers.Item(i) = ""
Case 59 To 99.99
list_numbers.Item(i) = "1"
Case 100 To 199.99
list_numbers.Item(i) = "2"
Case Is > 200
list_numbers.Item(i) = "3"
Case Else
list_numbers.Item(i) = "n/a"
End Select
End If
那么有你的代码的一些问题,据我所看到的,我确信解释行为的视宁度。
首先,Double.Parse方法实际上已经为该项目返回了一个双精度值,因此稍后不需要再用Cdbl进行转换。
这条线的另一个更大的问题是,如果该方法不能将字符串转换为双精度型,则会引发异常。我猜你在代码中的某个位置捕捉异常而不知道它。
最后一个问题是,我实际上找不到Double.Parse的任何重载,除了字符串和double,这导致我相信你实际上是使用Double.TryParse方法而不是Parse方法。如果解析成功,TryParse将返回true或false,并将值设置为您指定的double值。
给你提问;
什么是list_numbers? (阵列控制别的东西吗??)
小的改进,你应该改变
Select Case CDbl(list_numbers.Item(i))
与
Select Case possibledouble
,并为你的标题问题;
IsNumeric函数应该足够你的情况,我认为
...你上了case语句here一个更好的答案。见杰文德的回答。
我认为你应该改变标题问题,你问别的东西在里面 – Fredou 2009-06-17 23:34:01