我在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
会成立?
答案 0 :(得分:9)
请参阅http://support.microsoft.com/kb/329488
如果IsNumeric可以转换为 double ,则返回true,603E43为真 但是,该值大于小数可以容纳的值
您可以使用Decimal.TryParse函数作为工作替代方案。看到 http://msdn.microsoft.com/en-us/library/9zbda557.aspx