VB.NET数値チェック|VB.NET数値チェックの方法など紹介

公開日時:   更新日時:
VB.NET数値チェック|VB.NET数値チェックの方法など紹介
基本情報技術者試験の試験対策はこちら>>

SE
文字列を数値として扱いたい場合の方法について教えてください。

PM
では、VB.NET数値チェックでの方法を見ていきましょう。

VB.NET数値チェックとは?


VB.NETでのプログラミングにおいて、テキストボックスからの入力値をデータベースに格納する場合や、固定長テキストから切り出した値を計算に用いる場合など、文字列を数値として扱いたい場面があります。

VB.NETは型の暗黙変換に比較的寛容な言語ですが、”abc”や”1億”など数値に暗黙変換できない値をいきなりそれらの用途に使用すると、データベースで格納エラーが発生したり、計算処理でエラーが発生したりします。

実際の処理に移る前に、与えられた値がその用途に使用できるのか判定するために行うのがVB.NET数値チェックになります。

VB.NET数値チェックの方法①

具体的なVB.NET数値チェックの方法としてはIsNumericという便利なメソッドを用いる方法があります。このメソッドは与えられた値がVB.NET数値型に変換可能かどうかを判断し、Bool型(True/False)で結果を返す仕様となっています。

実際のソースコードをみてみましょう。

この例ではテキストボックスに入力された文字列を格納した文字列型変数「txt」についてVB.NET数値チェックを行い、数値であれば「数値です。」数値でなければ「数値ではありません。」というメッセージを出力しています。

IsNumericメソッド使用上の注意点

ただしこのメソッドではあくまでも「VB.NET数値チェックの結果、数値である」こと、つまり「与えられた文字列がVB.NET数値型として認識できる」ということが判定されたに過ぎません。

文字列型変数である「txt」をそのままデータベースの数値型項目に登録したり、数値計算に使用できるということが約束されたわけではないことに注意が必要です。

というのも、IsNumericメソッドが数値と認識できる文字列は意外と幅広く、以下のような文字列を与えてもVB.NET数値チェック結果として”True”が返されます。従って実際の処理に使用するには、しかるべきVB.NET数値型変数に変換してあげる必要があります。

  • “123,456.789”(カンマ付き)
  • “-123,456.789″(符号付き)
  • “¥123,456.789″(通貨記号付き)
  • “123456.789e-10″(指数)
  • “0000123456.789”(ゼロ埋め)
  • ” 123456.789 “(空白埋め)
  • “¥123,456.789ー”(全角)

VB.NET数値型とは?

VB.NET数値型にはその用途により様々なものが用意されています。以下に代表的なものを列挙します。

  • Integer・・・整数型。連番や件数など、小数点のつかない数値を扱いたい場合に使用します。VB.NET数値型の中では最もパフォーマンスが良いとされています。
  • Short・・・短整数型。整数型より小さい整数を扱いたい場合に使用します。
  • Long・・・長整数型。整数型より大きな整数を扱いたい場合に使用します。
  • Decimal・・・10進数型。金額や利率など、比較的大きな桁数の数値を誤差なく扱いたい場合に使用します。VB.NET数値型の中では最もパフォーマンスが悪いとされています。
  • Double・・・倍精度浮動小数点数型。科学技術計算など、高精度かつ高速性が求められる場合に使用します。
  • Single・・・単精度浮動小数点型。高速性は求められるけどDoubleほどの精度が必要ない場合に使用します。

IsNumericメソッドでは「これらのVB.NET数値型のうちのいずれかとして認識できる」と判定してくれるだけに過ぎません。

その数値が処理の中で必要とされる要件を満たすかどうかは、さらに詳しくVB.NET数値チェックを実施する必要があります。データベースに値を格納する場合など、VB.NETの世界から外に出ていく数値については特に注意が必要です。

VB.NET数値チェックの方法②

そこでもう一つのVB.NET数値チェックの方法として、「実際に型変換してみる」という方法をご紹介します。これは処理の中で必要とされる要件を満たすVB.NET数値型に型変換してみて、成功するか失敗するかを判定条件とする方法です。

実際のソースコードを見てみましょう。

VB.NET型変換の方法にはいろいろありますが、ここではCIntメソッドを使って整数型変数である「int」に変換値を格納する方法を記述しました。

型変換を実施する箇所をTry…Catchで囲むことにより、Catch以下に型変換に失敗した場合の処理を、End Try以下に型変換に成功した場合の後続処理を記述することができます。

SE
チェックするだけでなく、変換できるかも確認できるんですね。

PM
やや複雑ではありますが、マスターすれば実際の現場でも役立ちます。ぜひマスターしてください。

VB.NET数値チェックまとめ

以上、VB.NET数値チェックについて見てきました。

IsNumericは便利なメソッドですが、望んだ形の数値型であるかどうかまでは判定してくれません。「では初めから型変換してみたらいいのではないか」と考えるかもしれませんが、画面入力チェックで細かくエラーの内容を伝えたいときなど、役に立つ場面もあると思います。

用途に合わせてご自分なりのVB.NET数値チェックを実装してみてください。


FEnetへの登録は左下のチャットが便利です 経験者優遇! 最短10秒!

.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags