Para não passar raiva comparando dois números float com PHP nunca faça algo do tipo abaixo: $a = 0.1; $b = 0.2; if ($a + $b == 0.3) { echo 'Igual'; } else { echo 'Diferentes'; } Se fizer isso, vai ver que dá problema devido ao modo como o PHP guarda os valores float. Para resolver isso criei a função abaixo para comparar dois valores do tipo float. /** * Esta função recebe dois números como parâmetro. * Se os números forem iguais, ou seja, se a diferença * entre eles for menor que a margem de erro aceitável, * a função retorna 0, caso contrário retorna -1 se o * primeiro número for menor, * ou então 1 caso o segundo * seja o menor * @param float $a * @param float $b * @return 0 (igual), -1($num1 menor), 1($num2 menor) */ function compara_float( $num1 , $num2 , $precisao = 5 ) { $desprezar = pow ( 0.1 , $precisao ); $diff = abs ( $num1 - $num2 ); if ( $diff < $desprezar ) { ret
Vou postando aqui tudo que acho legal de programação que vou aprendendo e os divertidos textos em geral que recebo por email.