この文書の現在のバージョンと選択したバージョンの差分を表示します。
次のリビジョン | 前のリビジョン | ||
memo:マイナス端数処理の注意 [2018/11/28 21:25] 管理者 作成 |
memo:マイナス端数処理の注意 [2018/11/28 21:30] (現在) 管理者 [B方式の端数処理] |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
+ | ====== 📝マイナス端数処理の注意 ====== | ||
+ | 四捨五入・切り上げ・切り下げ・切り捨てなど端数処理(丸め)をする場合はマイナス値では2つの考え方があるので注意しましょう。 | ||
+ | |||
+ | ---- | ||
+ | ===== 概要 ===== | ||
+ | マイナスの端数処理はゼロの扱いによって二方式あります。ここでは仮にA方式とB方式と命名し端数処理の例を表にすると下図のようになります。 | ||
+ | |||
+ | ^ ^正数^A方式^B方式^ | ||
+ | ^元の数字^1.5^-1.5^-1.5^ | ||
+ | ^四捨五入|2|-2|-1※| | ||
+ | ^切り上げ|2|-2|-1| | ||
+ | ^切り下げ|1|-1|-2| | ||
+ | ^切り捨て|1|-1|-2| | ||
+ | |||
+ | ※B方式の四捨五入は特殊なのでB方式の項目で説明します。 | ||
+ | ---- | ||
+ | ===== A方式の端数処理 ===== | ||
+ | A方式は天秤のようにゼロを起点にプラスとマイナスがつり合うような場合に使用します。数字の大きさはゼロ点を最小としてプラスでもマイナスでも数字が大きいほど大きいと考える方式です(単純に数値だけを取り出し端数処理をしてマイナス符号をつけたものがマイナス)。この方式ではプラスでもマイナスでも同じ数値で端数処理すればつり合います。 | ||
+ | |||
+ | ===== B方式の端数処理 ===== | ||
+ | B方式は温度のようにゼロを数字の一つとして扱う場合に使用します。温度は人間が勝手に目盛りをつけたものなのでマイナスになっても事象や現象に変化はありません、プラスではゼロが最小値・マイナスではゼロが最大値と考える方式です。この方法ではゼロ点で処理が変わらないので歪みが発生しません。(次項の比較を参照) | ||
+ | |||
+ | B方式のマイナス時の四捨五入は正確には四捨五入ではありません。下図のように六捨五入とでも言うような状態になります。 | ||
+ | |||
+ | ^正数の四捨五入^1^0.9^0.8^0.7^0.6^0.5^0.4^0.3^0.2^0.1^0^ | ||
+ | ^ ::: |1|1(切り上げ)|||||0(切り下げ)||||0| | ||
+ | ^負数の四捨五入^0^-0.1^-0.2^-0.3^-0.4^-0.5^-0.6^-0.7^-0.8^-0.9^-1^ | ||
+ | ^ ::: |0|0(切り上げ)|||||-1(切り下げ)||||-1| | ||
+ | |||
+ | ===== 比較 ===== | ||
+ | 両者の違いはグラフ化するとよくわかります。+5から-5まで0.1刻みで切り捨て処理を行った場合、B方式では綺麗な階段状態になりますが、A方式はゼロ付近に踊り場のある階段になります。 | ||
+ | |||
+ | {{:media:201809:20180918-104512.jpg?300}} | ||
+ | |||
+ | ===== まとめ ===== | ||
+ | 一般的には人間が端数処理を行う場合はプラスとマイナスをひっくり返すだけのA方式が簡単なのでよく使われますが、温度などは地域によって摂氏や華氏を使いゼロ点が異なるのでB方式で統一しないと正確なデータ比較ができません。 | ||
+ | |||