Wrong result from IsNumeric() in VB.NET

2019-03-01 10:18发布

I have a function in VB.NET that loops through values and attempts to convert it to a decimal if IsNumeric is True,

Dim Value As String

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

I've found that when the function receives the value 603E43 IsNumeric evaluates to True for some reason and then bombs on the conversion. Why would IsNumeric be true in this case?

1条回答
家丑人穷心不美
2楼-- · 2019-03-01 11:04

See http://support.microsoft.com/kb/329488

IsNumeric returns true if it can be converted to a double which is true for 603E43 The value is however larger than what a decimal can hold

You could use the Decimal.TryParse funcion as a working alternative. See http://msdn.microsoft.com/en-us/library/9zbda557.aspx

查看更多
登录 后发表回答