如果Double.Parse(list_numbers.Item(i),possibledouble)
list_numbers是一个字符串列表
list_numbers.Item(i)=“0.000”
可能双重是双重
调试器返回“输入字符串格式不正确”
我认为双重解析会将字符串转换为“0.0”的双重格式,但它会给我一个错误。请帮忙
答案 0 :(得分:2)
您的代码可能看起来像这样(请参阅下面的说明)
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方法实际上已经为该项返回了一个double,因此稍后不需要再次使用Cdbl进行转换。
这一行的另一个主要问题是,如果方法无法将字符串转换为double,则会抛出异常。我猜你的代码中有些东西在没有意识到的情况下捕获了异常。
最后一个问题是我实际上并没有找到Double.Parse的任何重载,除了string和double之外,这让我相信你实际上意味着使用Double.TryParse方法而不是Parse方法。如果解析成功,TryParse将返回true或false,如果是,则将值放在您指定的double中。
答案 1 :(得分:1)
你的问题;
什么是list_numbers? (数组?控制?别的?)
小改进,你应该改变
Select Case CDbl(list_numbers.Item(i))
带
Select Case possibledouble
并为你的标题问题;
在你认为的情况下,isnumeric函数应该足够了
答案 2 :(得分:1)
...你在案例陈述here上得到了更好的答案。看看jvanderh的回答。