Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
電卓の小数点表示について
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30897#CommentId85878
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2023/9/5 13:51:11
> 小数点がクリックされたタイミングを起点にし、
> 小数点を2回クリックされた場合に対して処理をする
> というのがいいかと思い色々試しましたがうまくいきません。
現状通り、TextBox1.Text に書き込んでおけば、
If TextBox1.Text.Contains(".") Then
で、"." の有無を判断することができます。
あるいは既に小数点が打たれたかどうかを管理するための
Boolean 型のフィールド変数を作るということもできます。
[.] が押された場合は、このフィールドを True に変更します。
[AC]、[C]、[CE]、[=]、[+]、[-]、[*]、[/] が押された場合は、このフィールドを False にリセットします。
[0]~[9] などの場合は、このフィールドを書き換えません。
もしくは Boolean ではなく Integer で保持しておき、
何桁目に小数点記号があるのかを管理する…という実装にするケースもあります。
こうした特殊対応が必要なのは小数点記号に限りませんね。
たとえば、数値が 0 だったときに、[0] を押しても "00" や "000" にはなりません。
しかし、小数点記号を打った後だと、"0.0" や "0.00" と表示されます。
あるいはマイナス記号 [+/-] 。
これは数字の先頭に "-" の文字を付けたり外したりする目的がありますが、
現在の値が "0" だった場合は通常無視されますね。
※Double 型では、+0 と -0 の内部値は異なるのですが、値としては同一視されます。
その他、桁数上限を超えて数字キーが押された場合に無視する処理とか、
四則演算子を複数回入力された場合の動作とか、電卓を作る場合は
色々と考えるべき点が多いですね。