Foros del Web » Programando para Internet » PHP »

Comparación de números no va bien

Estas en el tema de Comparación de números no va bien en el foro de PHP en Foros del Web. Hola gente, me encuentro con un pequeño problema, no se que pasa. Código PHP: <? $a =  79.54 ; $b =  131.88 ; $c =  ...
  #1 (permalink)  
Antiguo 23/10/2007, 13:53
 
Fecha de Ingreso: noviembre-2005
Ubicación: Córdoba - Argentina
Mensajes: 155
Antigüedad: 18 años, 5 meses
Puntos: 1
Comparación de números no va bien

Hola gente, me encuentro con un pequeño problema, no se que pasa.

Código PHP:
<?
$a
79.54;
$b131.88;
$c211.42;

$suma$a $b;

if (
$suma == $c){
    echo 
"iguales";
}else{
    echo 
"no iguales";
}
?>
Me imprime "no iguales". Que pasa? La suma la hace bien, pero al comparar no me dice que sea igual.

Saludos!
  #2 (permalink)  
Antiguo 23/10/2007, 14:50
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 1 mes
Puntos: 10
Re: Comparación de números no va bien

La comparación de números con punto flotante suelen acarrear este tipo de situaciones. :S
Código PHP:
<?php
$a 
79.54;
$b 131.88;
$c 211.42;

$suma $a $b;

if (
is_float($suma) == is_float($c))
    echo 
"iguales";
else
    echo 
"no iguales";

?>
__________________
TolerantX
http://tolerantx.com
Linux User #385226

Última edición por TolerantX; 23/10/2007 a las 14:56
  #3 (permalink)  
Antiguo 23/10/2007, 15:51
 
Fecha de Ingreso: noviembre-2005
Ubicación: Córdoba - Argentina
Mensajes: 155
Antigüedad: 18 años, 5 meses
Puntos: 1
Re: Comparación de números no va bien

Y porque pasa esto? Es un error de PHP?

El ejemplo que te puse es algo simple, pero estoy haciendo un sistema que tiene muchísimas operaciones asi, funcionaban bien, pero esta es la primera vez que me da este problema.

Que cosas puedo tener en cuenta a la hora de hacer operaciones con punto flotante?

Gracias por responder!
  #4 (permalink)  
Antiguo 23/10/2007, 15:58
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Re: Comparación de números no va bien

http://es.php.net/float
  #5 (permalink)  
Antiguo 23/10/2007, 16:04
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 1 mes
Puntos: 10
Re: Comparación de números no va bien

No es error de PHP ni mucho menos.
El enlace que puso DarkJ debe aclarar tus dudas y cito un fragmento de lo que dice:

Cita:
Precisión del punto flotante

Así que nunca confíe en resultados de números flotantes hasta el último dígito, y nunca compare números de punto flotante para conocer si son equivalentes. Si realmente necesita una mejor precisión, es buena idea que use las funciones matemáticas de precisión arbitraria o las funciones gmp en su lugar.
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #6 (permalink)  
Antiguo 23/10/2007, 18:31
 
Fecha de Ingreso: noviembre-2005
Ubicación: Córdoba - Argentina
Mensajes: 155
Antigüedad: 18 años, 5 meses
Puntos: 1
Re: Comparación de números no va bien

Gracias a los dos! Voy a ver esas funciones matemáticas!
  #7 (permalink)  
Antiguo 23/10/2007, 21:07
Avatar de andruqui  
Fecha de Ingreso: agosto-2007
Mensajes: 269
Antigüedad: 16 años, 8 meses
Puntos: 2
Re: Comparación de números no va bien

Para nada es un error de PHP, son cosas que pasan con los numeros de punto flotante. Hay asignaturas entreras en donde se ahonda en estos temas (bastante feos por cierto), una de ellas es "metodos numericos" un verdadero espanto ;)

Saludos
Andres
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 02:41.