VB.NET中IsNumeric()的错误结果

时间:2011-07-21 00:34:26

标签: vb.net isnumeric

我在VB.NET中有一个循环遍历值的函数,如果IsNumeric为True则尝试将其转换为小数,

Dim Value As String

If IsNumeric(Value) = True Then
    Rate = CType(Value, Decimal)  <--- bombing here
End If

我发现当函数接收到值603E43 IsNumeric由于某种原因评估为True,然后轰炸转换。在这种情况下,为什么IsNumeric会成立?

1 个答案:

答案 0 :(得分:9)

请参阅http://support.microsoft.com/kb/329488

如果IsNumeric可以转换为 double ,则返回true,603E43为真 但是,该值大于小数可以容纳的值

您可以使用Decimal.TryParse函数作为工作替代方案。看到 http://msdn.microsoft.com/en-us/library/9zbda557.aspx