.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. .NET
  4. VB.NET数値チェック|VB.NET数値チェックの方法など紹介

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

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

    システム
    エンジニア
    文字列を数値として扱いたい場合の方法について教えてください。

    プロジェクト
    マネージャー
    では、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以下に型変換に成功した場合の後続処理を記述することができます。

    システム
    エンジニア
    チェックするだけでなく、変換できるかも確認できるんですね。

    プロジェクト
    マネージャー
    やや複雑ではありますが、マスターすれば実際の現場でも役立ちます。ぜひマスターしてください。

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

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

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

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

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    VB.NET新着案件New Job