我在VB.NET中有一个函数循环遍历值并尝试将其转换为十进制,如果IsNumeric为True,
Dim Value As String
If IsNumeric(Value) = True Then
Rate = CType(Value, Decimal) <--- bombing here
End If
Run Code Online (Sandbox Code Playgroud)
我发现当函数接收到值603E43 IsNumeric由于某种原因求值为True然后轰炸转换.IsNumeric在这种情况下为什么会这样?
请参见http://support.microsoft.com/kb/329488
IsNumeric如果可以转换为double,则返回true,对于603E43,该值为true.但是,该值大于小数可以容纳的值
您可以使用Decimal.TryParse函数作为工作替代.请参阅 http://msdn.microsoft.com/en-us/library/9zbda557.aspx
| 归档时间: |
|
| 查看次数: |
6577 次 |
| 最近记录: |