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


ソーントン  2003-08-28 04:01:48  No: 79181

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


ara  2003-08-28 06:34:21  No: 79182

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

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


クリリン  2003-08-28 19:11:45  No: 79183

テキストボックスに[.]があるかどうかチェックしたらいいのでは?
例えば、
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 19:11:51  No: 79184

> 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 19:16:45  No: 79185

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加