Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
電卓の小数点表示について
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30897#CommentId85876
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
mmmzk
 (社会人)
投稿日時
2023/9/5 11:53:05
Visual Studio2019(VB.net)のフォームアプリで電卓作成しています。
四則演算ができ、小数点の計算にも対応するもの
(VBを始めて約2週間ド初心者)
表示や計算自体に特に問題はありませんでしたが、
小数点ボタンを連続で2回クリックすると、
下から3行目のCDbl(TextBox1.Text)部分にエラーが出てしまいます。
【エラー内容】
'String "1.." から型 'Double' への変換は無効です
↑入力した1..が数値と認められず、数値に変換して代入できない
エラーの意味は理解できたつもりですが、
対処するコードをどう書けばいいか悩んでいます。
具体的な対処法としては、
小数点がクリックされたタイミングを起点にし、
小数点を2回クリックされた場合に対して処理をする
というのがいいかと思い色々試しましたがうまくいきません。
ご助言いただけますと幸いです。
以下が現状作成しているコードになります。
'数字・小数点ボタンクリック時処理
Private Sub CM_Num(intKey As Integer)
If iType = OP_ERROR Then Exit Sub
If lastKey <> KEY_NUMBER Then '直前に押されたキーが数字以外(演算子キー押した)
TextBox1.Text = "0" '表示値を0に
End If
If intKey = -1 Then '今回入力値が小数点である
TextBox1.Text = TextBox1.Text & "." '現在の表示値に小数点を追加
Else
If TextBox1.Text = "0" Then '元から0の場合
TextBox1.Text = CStr(intKey) '今回入力値を表示する
Else
TextBox1.Text = TextBox1.Text & CStr(intKey) 'それ以外(0-9)の場合は入力値を表示する
End If
End If
cNum = CDbl(TextBox1.Text) '数値に変換して代入
lastKey = KEY_NUMBER '直前に押された数字キーを記憶
End Sub