Vb.net 检查字符串是否为双精度

Vb.net 检查字符串是否为双精度,vb.net,Vb.net,如果是Double.Parse(列出第(i)项,可能是Double) 列表编号是字符串的列表 列表编号。项目(i)=“0.000” 双倍可能是双倍的 调试器返回“输入字符串格式不正确” 我原以为双重解析会将字符串转换为“0.0”的双重格式,但它给了我一个错误。请为您的问题提供帮助 什么是列表编号?(阵列?控制?其他东西?) 一个小小的进步,你应该改变 Select Case CDbl(list_numbers.Item(i)) 与 和你的标题问题 我认为在你的情况下,isnumeric

如果是Double.Parse(列出第(i)项,可能是Double)

列表编号是字符串的列表

列表编号。项目(i)=“0.000”

双倍可能是双倍的

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

我原以为双重解析会将字符串转换为“0.0”的双重格式,但它给了我一个错误。请为您的问题提供帮助

什么是列表编号?(阵列?控制?其他东西?)

一个小小的进步,你应该改变

    Select Case CDbl(list_numbers.Item(i))

和你的标题问题

我认为在你的情况下,isnumeric函数应该足够了


。。。你在案件陈述中得到了更好的答案。见jvanderh的回答

您的代码可能如下所示(请参见下面的解释)

就我所知,你的代码有一些问题,我确信这可以解释你看到的行为

首先,Double.Parse方法实际上已经为该项返回了一个Double,因此以后无需使用Cdbl再次转换它

这一行的另一个更主要的问题是,如果该方法无法将字符串转换为double,则会引发异常。我猜在你的代码中,你在没有意识到的情况下捕捉到了异常


最后一个问题是,我实际上没有找到Double.TryParse的任何重载,除了string和Double,这让我觉得您实际上是想使用Double.TryParse方法,而不是Parse方法。如果解析成功,TryParse将返回true或false,如果解析成功,则将值放入指定的双精度中。

我认为您应该更改标题问题,您可以在其中询问其他问题
    Select Case possibledouble
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