アフィリエイト広告を利用しています
G-QVESCNWRVH

2024年05月08日

四捨五入で失敗したー

●バグったー

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>
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント: 必須項目

この記事へのトラックバックURL
https://fanblogs.jp/tb/12540673

この記事へのトラックバック
ファン
検索
<< 2024年09月 >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
最新記事
写真ギャラリー
最新コメント
タグクラウド
カテゴリーアーカイブ
プロフィール
Y.Taki@AS400さんの画像
Y.Taki@AS400
IBM AS/400で稼働するシステムの開発・追加を担当して30年以上になります。使えば使うほどこの AS/400 が好きになりました。 こんなSEがいろいろな視点から様々な業務などについて語ります。
プロフィール