粗茶でございます日本語 プログラミング 言語 「なでしこ」 大好き 

この記事に含まれるtag :
Excel  

スポンサーサイト

   ↑  --/--/-- (--)  カテゴリー: スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

(記事編集) http://nadesocha.blog.fc2.com/?overture" target="_new

--/--/-- | Comment (-) | ホーム | ↑ ページ先頭へ ↑ |

切り上げ、切り下げ、切り捨て、四捨五入

   ↑  2013/03/24 (日)  カテゴリー: プログラミング全般
 プログラミングで気になるのは、数値の端数処理です。
 たとえば整数型に小数を入れることができませんので、小数点以下を処理するような場合です。

 そして誰もが疑問に思うのが、マイナス数値の端数を処理したときに、どんな値が得られるのかということです。
 「1.5」の小数点を切り上げたら「2」だけど、「-1.5」の小数点を切り上げたら「-1」なのか「-2」なのか悩みますよね。

 マイナス数値を丸めることについて、少し調べてみましたが、絶対的な答えはでてきませんでした。
 とりあえず、次のようにまとめてみましたので、参考にしてください。

・四捨五入
 処理する数値が0から4ならばゼロ方向に丸める。5から9ならばゼロとは反対の無限大方向に丸める。
・切り上げ(*A)
 正の無限大方向に丸める。
・切り下げ
 負の無限大方向に丸める。
・切り上げ(*B)
 ゼロとは反対の無限大方向に丸める。
・切り捨て
 ゼロ方向に丸める。


 小数第2位を処理して、小数第1位まで求める場合を例に説明します。
・四捨五入
 1.24→1.2
 1.25→1.3
 -1.24→-1.2
 -1.25→-1.3
 エクセルのRound関数と同じです。4以下ならば端数を捨ててしまいます。5以上ならば端数を捨てて、上の位に1を加えます。
 数直線上で-1.24から見てゼロ方向は-1.2です。-1.25から見てゼロとは反対の無限大方向は-1.3です。
 (負)-1.4__-1.3_←_-1.25__-1.24_→_-1.2__-1.1__0__1(正)

・切り上げ(*A)
 1.24→1.3
 1.25→1.3
 -1.24→-1.2
 -1.25→-1.2
 エクセルのCeiling関数と同じです。端数を捨てて、正の無限大方向へ丸めます。
 数直線上で-1.24から見て正の無限大方向は-1.2です。1.24から見て正の無限大方向は1.3です。
 (負)-1.4__-1.3__-1.25_→_-1.24_→_-1.2__-1.1__0__1__1.2__1.24_→_1.25_→_1.3__1.4(正)

・切り下げ
 1.24→1.2
 1.25→1.2
 -1.24→-1.3
 -1.25→-1.3
 エクセルのFloor関数と同じです。端数を捨てて、負の無限大方向へ丸めます。
 数直線上で-1.24から見て負の無限大方向は-1.3です。1.24から見て負の無限大方向は1.2です。
 (負)-1.4__-1.3_←_-1.25_←_-1.24__-1.2__-1.1__0__1__1.2_←_1.24_←_1.25__1.3__1.4(正)

・切り上げ(*B)
 1.24→1.3
 1.25→1.3
 -1.24→-1.3
 -1.25→-1.3
 エクセルのRoundUp関数と同じです。端数を捨てて、ゼロとは反対の無限大方向へ丸めます。
 数直線上で-1.24から見てゼロとは反対の無限大方向は-1.3です。1.24から見てゼロとは反対の無限大方向は1.3です。
 (負)-1.4__-1.3_←_-1.25_←_-1.24__-1.2__-1.1__0__1__1.2__1.24_→_1.25_→_1.3__1.4(正)

・切り捨て
 1.24→1.2
 1.25→1.2
 -1.24→-1.2
 -1.25→-1.2
 エクセルのRoundDown関数と同じです。端数を捨てて、ゼロ方向へ丸めます。
 数直線上で-1.24から見てゼロ方向は-1.2です。1.24から見てゼロ方向は1.2です。
 (負)-1.4__-1.3__-1.25_→_-1.24_→_-1.2__-1.1__0__1__1.2_←_1.24_←_1.25__1.3__1.4(正)


 ここで、切り上げに2通りあることに気づかれたと思います。
 切り上げをするときに、数値を絶対値として扱うか、数直線と同じの大小で扱うかによって結果が違うのです。
 使用しているプログラミング言語によって、どちらが実装されているのか確認する必要がありますね。

 数学においても、マイナスの切り上げについては定義がされていないようです。
 区別するために、「切り上げ(*B)」は「切り入れ」とかにしてもいいのでは?と思います。



関連記事

この記事に含まれるtag : Excel 

FC2スレッドテーマ : プログラミング (ジャンル : コンピュータ

(記事編集) http://nadesocha.blog.fc2.com/blog-entry-166.html

2013/03/24 | Comment (0) | Trackback (0) | ホーム | ↑ ページ先頭へ ↑ |

Comment

コメント:を投稿する 記事: 切り上げ、切り下げ、切り捨て、四捨五入

お気軽にコメント:をぞうぞ。
非公開 (管理人のみ閲覧可能なコメント:) にしたい場合には、ロック にチェックを入れてください。

  任意 : 後から修正や削除ができます。
  非公開コメント:として投稿する。(管理人にのみ公開)

Trackback

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。