PHPの小数点の罠

PHPで小数点にかかる計算をするときの注意点です。

以下は普通に考えると0.8になります。

var_dump(floor((0.1+0.7)*10));

しかし、結果は float(7) になります。

これは浮動小数点の誤差が関係しているらしいです。

https://www.php.net/manual/ja/language.types.float.php

こういったことを防止するために、BC Math 関数https://www.php.net/manual/ja/ref.bc.php を使います。

PHP

Posted by たみぼうず