hnwの日記

PHPの新しいround関数を読み解く (2)pre-roundingの意味


(2011/10/18 01:50)「他の言語で試してみる」「誰が正しいのか?」を追記しました。また、初心者への対策と強調しすぎて誤解を招いた気がしたため、少し表現を変更しました。


前回記事「PHPのround関数を読み解く (1)丸め桁数が大きすぎ・小さすぎる場合」に引き続きPHPのround関数の処理を解説していきます。今回は、PHP5.3のround関数で最も特徴的なpre-rounding処理を追いかけていきましょう。

pre-roundingとは

pre-roundingとは、与えられた数の丸め処理を行う前に、与えられた数をいったん10^n倍して10^14以上10^15未満の数にして整数への丸めを行うことです。pre-rounding処理のあとで、改めて本来の丸め処理を行います。


ちなみに、pre-roundingという単語は一般的な単語ではありません。少なくとも僕はPHPのround関数でしか聞いたことが無い単語です。

round関数の処理概要

pre-roundingがPHPのround関数の処理でどのように利用されているか、もう少し詳しく見てみましょう。PHPのround処理を書き下すと次のようになります。

続きを読む