●バグったー
5月7日 連休明け
現場の方から、どうも数値が合わない・・・という連絡があった
現象を確認すると
四捨五入が上手く行っていないようだった
●四捨五入とはなんぞや?
それは、もう読んで字のごとく(笑)
ある桁が、4以下なら切り捨て5以上なら切り上げをすること
ですが・・・落とし穴がありました。
たとえば、3.5を整数にしようとしたら、四捨五入すると 4になります。
3.8を四捨五入しても4、 4.2を四捨五入しても4ですね。
これを数学的に実現しようとすると、0.5を足して整数化すればよい・・・と考えました
●演算方法
実際に・・・
3.5+0.5 = 4.0 ⇒ 整数化すると 4
3.8+0.5 = 4.3 ⇒ 整数化すると 4
4.2+0.5 = 4.7 ⇒ 整数化すると 4
目論み通りですね
でも、落とし穴と言うのは、この演算方法は、マイナスの値には通用しないんです。
−3.5+0.5 = −3.0 ⇒ 整数化すると −3 本当は −4であってほしい
−3.8+0.5 = −3.3 ⇒ 整数化すると −3 これも −4であってほしい
こんな感じです
どうすればいいか? 答えは簡単なんですが・・・
●RPG4ではどうするか
本当は、四捨五入をするための拡張命令を使用すればよかったんですが・・・
それを知らなかったので、上記のようなしちめんどくさいことをしてしまい
結局、バグを出してしまいました。
RPG4での具体的な命令はというと、 EVAL 命令に (H) を付けて
EVAL(H) とすればよかったんです。
あ〜〜〜あ!
●被害は些少で済んだ
このバグによる被害は些少で済んだんですが
プログラム改修に1時間程度かかってしまいました
ほんとに、もう・・・恥ずかしい
穴があったら入りたい・・・
無くても穴を掘って埋まりたい(笑)
そんな感じでした
まぁ、一つ賢くなった
それで自分を慰めときます(笑)
人気ブログランキング
" allowfullscreen>