プロが教えるわが家の防犯対策術!

プログラム(VB.NET)初心者です。
どうぞよろしくお願いします。

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

教えて!goo グレード

A 回答 (3件)

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
    • good
    • 2

・テキストボックスには、すでに数値が入っている状態とした場合のサンプル(自作)です。


・簡単にソースの処理内容を言いますと、「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
    • good
    • 3

テキストボックスということであれば、以下のものではどうでしょうか?



If InStr(1, TextBox1.Text, ".") Then
MsgBox "YES"
else
MsgBox "NO"
End If
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング