1

IsNumericVB.NET には、値をループしてTrue の場合に 10 進数に変換しようとする関数があります。

Dim Value As String

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

IsNumeric関数が値を受け取ると、何らかの理由で603E43が True と評価され、変換が失敗することがわかりました。この場合、なぜIsNumerictrue になるのでしょうか。

4

1 に答える 1

9

http://support.microsoft.com/kb/329488を参照してください。

IsNumeric がdoubleに変換できる場合は trueを返します。これは 603E43 の場合 true です。ただし、値は 10 進数が保持できる値よりも大きいです

Decimal.TryParse 関数を代替手段として使用できます。http://msdn.microsoft.com/en-us/library/9zbda557.aspxを参照して ください。

于 2011-07-21T00:54:07.550 に答える