PHP における不正確な浮動小数点計算の比較と丸めの解決策 PHP における興味深い現象は、多くのプログラミング言語でも見られるはずです。これは、コンピュータ自身の浮動小数点数の認識の問題によるものです。 [php] view plaincopy $f = 0.58; var_dump($f * 100 *100)); /結果 5799 var_dump((float)($f * 100 *100))//結果 5800 echo (int)((0.1 0.7)*10); //結果 7 echo (float)((0.1 0.7) *10) //結果 8 [php] plaincopy を表示 $a = 0.1; $b = 0.7; var_dump(($a $b) == 0.8); 出力される値は実際にはブール値 false [php] view plaincopy $a = 0.1; $b = 0.7; var_dump($a,$b,2) == 0.8);// bool true 浮動小数点数を計算するときは、浮動小数点数を整数に変換しないように注意してください。変換しないと、予測不可能なエラーが発生します。 したがって、浮動小数点数の結果が最後の桁まで正確であるとは絶対に信じないでください。また、2 つの浮動小数点数が等しいかどうかを比較することも決してしないでください。