SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【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 関数を使って計算することにします。

関連するメモ

コメント