小数点を1つだけ出すには?


ソーントン  2003-08-27 19:01:48  No: 79181  IP: [192.*.*.*]

小数点のコマンドを何回もクリックすると小数点がたくさん出てきます。
小数点を1つだけ出すにはどうすればよろしいのでしょうか?
現在のプログラムです。
Private Sub Command1_Click()
   If InStr(text1.text,",") Then
   Exit Sub
Else
   Text1.Text = Text1.Text + "."
End If
End Sub

編集 削除
ara  2003-08-27 21:34:21  No: 79182  IP: [192.*.*.*]

私も入門者なのでたいした助言はできませんが"."がたくさんでる理由は

>If InStr(text1.text,",") Then
このInStr()はtext1.textのなかから","を探して見つかった文字位置の
番号を返すものなのでこの部分は評価されずElseの処理に行ってしまう
から何度でも"."を追加してしまうのではないのでしょうか

編集 削除
クリリン  2003-08-28 10:11:45  No: 79183  IP: [192.*.*.*]

テキストボックスに[.]があるかどうかチェックしたらいいのでは?
例えば、
Private Sub Command1_Click()
  If InStr(text1.text,",") Then
    Exit Sub
  Else
    if InStr(Text1.text,".") = 0 then
      Text1.Text = Text1.Text + "."
    end if
  End If
End Sub

If InStr(text1.text,",")…この処理は何を意味するか解りませんが…

編集 削除
nanashi  2003-08-28 10:11:51  No: 79184  IP: [192.*.*.*]

> If InStr(text1.text,",") Then

揚げ足を取るようで悪いですが、この部分は一応評価されます。
0の時False、0以外の時はTrueです。

てゆーか、ここでカンマを指定しているのが問題でしょう。
ケアレスミスですね(^^;

Private Sub Command1_Click()
    If InStr(Text1.Text, ".") Then
        Exit Sub
    Else
        Text1.Text = Text1.Text + "."
    End If
End Sub

編集 削除
クリリン  2003-08-28 10:16:45  No: 79185  IP: [192.*.*.*]

私もnanashiさんと同じケアミスと思ったのですが、あえて、載せています。

アドバイスですが、出来る限り、Ifの条件判定は省略しない方がいいですよ!
その癖がついてしまうといずれ痛い目に会いますから・・・

編集 削除