it技術:設計時の見落とし:切り上げ
切り上げ
仕様書の中に、「小数点第4位で切り上げ」というのがありました。
容積の求める項目なのですが、小数点3桁までとなっている。
容積 =(たて / 1000)×(よこ / 1000)x(たかさ / 1000)
製造作業も終了し、検証作業ということで検証者がチェックしたわけですが、不具合ということで、容積の計算結果が挙がってきたわけです。
下記の計算を行ったとき
(9999 / 1000)×(9999 / 1000)×(9999 / 1000)= 999.70003 製造者の計算結果は、999.701 検証者の計算結果は、999.700
小数点第4位で切り上げであるため、小数点第4位の値は0であるから結果の末桁は、0ではないのか?という認識ですね。
それではと、Excel上の切り上げ関数のROUNDUPで実行してみました。
ROUNDUP(999.70003,3)=999.701という結果となったわけです。
この件は、お客さんに確認して小数点第4位以降を切り上げでいうことで「999.701」で問題ないとなりました。
端数処理もちりもつもれば、集計結果が違ってきてしまいますからね。
端数処理の違いで有名なのは四捨五入で、銀行型丸め、通常の四捨五入があります。
.NET TIPS 数値を四捨五入するには?
端数処理は意外と盲点なので、気をつけた方がいいでしょう。
it技術/設計時の見落とし/切り上げ.txt · 最終更新: 2017/03/26 13:28 by yajuadmin