【php】浮動小数点数の計算
問題
困ったことになりました。
ソース: echo ceil(8.05 * 100);
結果: 806 (805ではない)
答え
浮動小数点数に関する警告はこちらにも書かれています。
http://www.php.net/manual/ja/language.types.float.php
floor((0.1+0.7)*10) をすると 8ではなくて7になるといった事件が起きます。
phpで小数を扱うときは bcmul(bcadd(‘0.1’, ‘0.7’, 2), ’10’) のように、BC Math 関数やGMP 関数を使って計算することにします。
コメント