1

コード例:

Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MessageBox.Show(Val(TextBox1.Text), "Val of text input")
    End Sub
End Class

とにかく、単純な好奇心から、なぜこれを行うのか疑問に思っています。

他のいくつかの投稿と個人的な経験から、VAL(expression) は推奨されておらず、VB6 時代の単なるレガシー関数であることを知っています。私は他のすべてのアルファベット文字を試しましたが、この問題を引き起こしたものはありませんでした。また、いくつかのバリエーションを試しました.dまたはeがその数のゼロを追加した後に任意の数字が表示されます(乗算のようです)。値が配置されたデータ型 VAL をオーバーフローしている可能性があることを理解しています。e はサブプロシージャのデフォルト変数であるため、おそらくそれが理由ですが、d のロジックがわかりません。

私は VB.NET の初心者であり、大学のコースを修了したばかりで、実際のアプリを作成していないことに注意してください。さらに、私の現在の仕事の状況には問題のあるかなり古いアプリがいくつかあるため、先生は私が非常に興味を持っているエラー処理を教えてくれなかったようです。推奨されるエラー処理の記事/読み物もお願いします

4

1 に答える 1

6

Val() 関数は、「文字列に含まれる数値を適切な型の数値として返します」( http://msdn.microsoft.com/en-us/library/k7beh1x9(v=vs.71) から引用)。 aspx )。5exxx のような文字列値を設定すると、5 * 10^xxx を意味します。しかし注意してください: 関数は double を返し、double はおよそ ±5.0 x 10^-324 から ±1.7 x 10^308 になります。たとえば、文字列 5e307 は機能しますが、5e308 は機能せず、オーバーフローが返されます。他の文字を使用すると、「関数は数値の一部として認識できない最初の文字で文字列の読み取りを停止する」ため、オーバーフローは返されません。

お役に立てば幸いです。よいお年をお迎えください!

于 2012-12-31T21:17:21.457 に答える