检查字符串是否为double

时间:2009-06-17 23:25:54

标签: vb.net

如果Double.Parse(list_numbers.Item(i),possibledouble)

list_numbers是一个字符串列表

list_numbers.Item(i)=“0.000”

可能双重是双重

调试器返回“输入字符串格式不正确”

我认为双重解析会将字符串转换为“0.0”的双重格式,但它会给我一个错误。请帮忙

3 个答案:

答案 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函数应该足够了

and you already got how to do it from here

答案 2 :(得分:1)

...你在案例陈述here上得到了更好的答案。看看jvanderh的回答。