1

我在 VB.NET 中有一个函数,它循环遍历值并尝试将其转换为小数(如果IsNumeric为真),

Dim Value As String

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

我发现当函数接收到值 603E43 时IsNumeric,由于某种原因,它的计算结果为 True ,然后在转换时发生炸弹。为什么IsNumeric在这种情况下会是真的?

4

1 回答 1

9

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

如果可以将 IsNumeric 转换为精度,则返回 true,这对于 603E43 是正确的。但是,该值大于小数可以容纳的值

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

于 2011-07-21T00:54:07.550 回答