• ベストアンサー

小数点を含む数値かどうか判断の判断方法

プログラム(VB.NET)初心者です。 どうぞよろしくお願いします。 テキストボックスに小数点を含んだ数値かどうかの 判断を行いたいのですが、どのようにチェックをすればいいかがわかりません。 どなたか、わかる方教えていただけたら幸いです。 サンプルソースがあると嬉しいです。 申し訳ありませんが、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

TextBox1に入力された文字列をDecimalに変換してみて、エラーが起こるかどうかでチェックするサンプル TextBox2にチェック結果を表示するようにしてあるが、 Flagが0以外の時エラーがあったことがわかる ------------------------------------------------------ Dim decimalVal As Decimal = 0 Dim Flag As Integer = 0 TextBox2.Text = "OK" Try decimalVal = System.Convert.ToDecimal(TextBox1.Text) Catch exception As System.OverflowException Flag = 1 'オーバーフロー TextBox2.Text = "オーバーフロー" Catch exception As System.FormatException Flag = 2 '書式がおかしい TextBox2.Text = "書式がおかしい" Catch exception As System.ArgumentException Flag = 3 'Null TextBox2.Text = "未入力" End Try

その他の回答 (2)

  • rouden
  • ベストアンサー率30% (13/43)
回答No.3

・テキストボックスには、すでに数値が入っている状態とした場合のサンプル(自作)です。 ・簡単にソースの処理内容を言いますと、「Number = Number - Int(Number)」の処理で、変数「Number」に入っている数値を小数点部分のみにしてしまう計算をしています。また、「Number = Abs(Number) '絶対値を取得」の処理をしている理由は、テキストボックスに入力されていた数値が、負の数(0未満)だったときに、変数「Number」に含まれている「-」(マイナス記号)を取り除くためです。 Dim Number As Double Number = CDbl(Text1.Text) '念のため、テキストボックスの中身を倍精度浮動小数点数型にして変数に代入する。 Number = Number - Int(Number) Number = Abs(Number) '絶対値の取得 If Number = 0 Then   Msgbox("小数点を含まない数値です。") Else   Msgbox("小数点を含んだ数値です。") End If

回答No.1

テキストボックスということであれば、以下のものではどうでしょうか? If InStr(1, TextBox1.Text, ".") Then MsgBox "YES" else MsgBox "NO" End If

関連するQ&A