丸め誤差の影響で意図していない結果が出ることがある。
例えば以下の例では 8 になって欲しいところが 7 になる。
$ php -a php > $n = (0.1 + 0.7) * 10; php > echo floor($n) . "\n"; 7
切り捨て直前に文字列に変換することで回避できる。
php > echo floor(strval($n)) . "\n"; 8
参考: PHPの小数演算における切り上げ切り捨て問題 | PSI Labs
http://www.psi-net.co.jp/blog/?p=277
0 件のコメント:
コメントを投稿