PHP: 浮動小数点数 - Manual
CPUによってfloatの精度が違うので、小数の桁数を信用してはいけない。
サンプル
<?php $a = 0.1444444444444444444444444; $b = 0.1444444444444444444444445; if($a < $b) print_r('hoge'); // $aと$bはイコールになってしまっている $a = 0.144444; $b = 0.144445; if($a < $b) print_r('homu');
結果
homu
追記 var_dumpをつかうといいですね。
<?php $a = 0.1444444444444444444444444; $b = 0.1444444444444444444444445; var_dump($a < $b); var_dump($a == $b); $a = 0.144444; $b = 0.144445; var_dump($a < $b);
bool(false)
bool(true)
bool(true)