Hatena::Diary

in the life

2009-03-18

電卓の「00」

先日一つ疑問が浮かんだんだけど、

電卓って数字だとボタンが0〜9まであるでそ。

でも電卓によっては「00」ボタンもあるじゃないですか。

あの場合、VBでやるとしたらどうなるんだろうって思ったときに、

データ型の欄を調べてみたけど、どれになるのかよく分からなかった。

文字列じゃなく、数値でやる場合はどうすればいいんだろう?

masaru_b_clmasaru_b_cl 2009/03/18 17:12 文字列:末尾に"00"を追加。例:strNumber = strNumber & "00"
数値 :100倍する。例:number = number * 100

かな?

masaru_b_clmasaru_b_cl 2009/03/18 17:14 あ、数値の場合、小数点のあとはどうしようねぇ?

ちなみに、私が以前の祭りのときに作った電卓では、
計算する前まではStringで扱って、いざ計算となったら、
いま表示している数値文字列をDecimalにParseしてました。

naka_Pnaka_P 2009/03/18 17:48 整数なら*100、小数なら/100とか。
Stringでやるならまさるさんのやり方ですかねー。

naka_Pnaka_P 2009/03/18 17:50 >小数なら/100
よく考えたらだめだった。。。

επιστημηεπιστημη 2009/03/18 22:10 数値で扱うなら小数は諦めにゃならんちゃうかな。
0.000... が表現できんし。
表示上は文字列で、演算ボタンが押された途端に数値に確定させるならおk。

n_saito1111n_saito1111 2009/03/19 09:06 コメントありがとうございます♪
>文字列:末尾に"00"を追加。例:strNumber = strNumber & "00"
これは思い浮かんだんですよねぇ
>数値の場合、小数点のあとはどうしようねぇ?
>数値で扱うなら小数は諦めにゃならんちゃうかな。
ですよねぇ.......

>計算する前まではStringで扱って、いざ計算となったら、
>Stringでやるならまさるさんのやり方ですかねー。
>表示上は文字列で、演算ボタンが押された途端に数値に確定させるならおk。
やはりこれでやってみようかなぁ。

επιστημηεπιστημη 2009/03/19 09:25 それっぽく動かすには状態を意識せにゃあきません。
- いきなり'.'が押されたら "0." と書く。
- 最初に '0'が連続押しされても "0"のまま。
- 最初に '0'じゃない数字(たとえば'3')が押されたら "03" じゃなくて "3"
- 二度目以降の'.'は無視
などなど。

リアル電卓をつついてその挙動をよぉく観察してくだせぇ。

n_saito1111n_saito1111 2009/03/19 10:04 >いきなり'.'が押されたら "0." と書く。
今気づきました・・・(笑
最初に「.」のあとに「6」入れると小数点として見てくれるんですね。
ずっと「0.6」って打ってました。
数値だけじゃだめですね。むりくり数値で考えてました。
すこぶる理解してきた。

masaru_b_clmasaru_b_cl 2009/03/19 10:50 私の電卓記事で状態遷移図も書いてあるので、参考にしてみてね。

http://blogs.wankuma.com/masaru/archive/2007/07/07/84202.aspx
http://blogs.wankuma.com/masaru/archive/2007/07/10/84533.aspx
http://blogs.wankuma.com/masaru/archive/2007/07/12/84994.aspx
http://blogs.wankuma.com/masaru/archive/2007/07/20/86284.aspx

n_saito1111n_saito1111 2009/03/19 10:57 あざ〜っす><
参考させていただきます♪

ゲスト


トラックバック - http://d.hatena.ne.jp/n_saito1111/20090318/1237362748