PHPの不具合?

PHPでSNSアプリを制作しているのだが、
数値的に妙な現象が起こったので、備忘録。

経験値計算など、アプリには必ず数値計算が必要なわけだが、
そういうところで、小数点以下が発生した場合、通常は、切捨てだ。

(int) ってキャストすれば良いだけで(言語によるが)非常に楽なんだが、
なぜか今回の仕様を作ってる奴は、仕様書のいたるところに「切り上げ」と書いている。

なぜだ?

まぁいい、PHPは、 ceil() という切り上げ関数があるので、それ使えばいいだろ。
というわけで組み込んでいたのだが…。

ceil(50 * 1.1) が、56となるのだ。

計算結果は、ぴったり55のはずだが、ceilは引数を float型とみなすので、
小数点以下の計算で、なにやら変なことをやっている結果なのだろう。

#コンピュータで 0.1を表現することができないと知ったときは、驚いた。

ま、そんなわけで、切り上げ計算を全て駆逐。
意味無く余計なことはスンナってことだな。
[PR]
by miries | 2012-03-14 15:50 | ゲームを作る


<< 軽く模様替え ドコモとWebメール >>