Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

resultados extraños en operaciones matematicas

Estas en el tema de resultados extraños en operaciones matematicas en el foro de Mysql en Foros del Web. Gente: tengo una db con unos campos "double" en los que a veces se realizan operaciones matemáticas simples en php (sumas y restas) y se ...
  #1 (permalink)  
Antiguo 11/02/2010, 10:13
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 20 años, 1 mes
Puntos: 1
resultados extraños en operaciones matematicas

Gente: tengo una db con unos campos "double" en los que a veces se realizan operaciones matemáticas simples en php (sumas y restas) y se almacenan ahí (es un sistema contable online).
El tema es que a veces operaciones simples como 10-10, en vez de dar 0 dan valores como -2.27373675443E-13

¿esto es un problema de php o de mysql?

agradeceré respuesta.
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #2 (permalink)  
Antiguo 11/02/2010, 10:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: resultados extraños en operaciones matematicas

Si el campo de tipo DOUBLE fue definido sin parámetros de precisión, se comporta como un FLOAT, el cual es un tipo de columna de datos de punto flotante aproximado, y da ese tipo de resultados. En cambio, cuando le defines la precisión se comporta como un DECIMAL, y es más exacto para operaciones donde se necesite valores precisos.
El manual de referencia recomienda, en los casos de uso contable (valores monetarios), usar DECIMAL(m,n) y no FLOAT o DOUBLE.
Si ellos lo dicen...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/02/2010, 10:36
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: resultados extraños en operaciones matematicas

Lo que dice gnzsoloyo es muy cierto. Pero lo raro es que si se resta 10-10 y ambos son double, mysql devuelve un cero. así que el problema no necesariamente lo estés teniendo mysql.

Código MySQL:
Ver original
  1. mysql> create table prueba_float(num1 double,num2 double);
  2. Query OK, 0 rows affected (0.02 sec)
  3.  
  4. mysql> insert into prueba_float values(10,10);
  5. Query OK, 1 row affected (0.02 sec)
  6.  
  7. mysql> select num1-num2 from prueba_float;
  8. +-----------+
  9. | num1-num2 |
  10. +-----------+
  11. |         0 |
  12. +-----------+
  13. 1 row in set (0.00 sec)

me consta que si haces operaciones un poco mas complejas, la precisión se pierde para este tipo de datos.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 15/02/2010, 06:38
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 20 años, 1 mes
Puntos: 1
Respuesta: resultados extraños en operaciones matematicas

Chicos, gracias por la respuesta y perdón por la demora en re-responder.
Analizaré lo que me dicen y luego les cuento.
Saludos,
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #5 (permalink)  
Antiguo 15/02/2010, 06:44
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 20 años, 1 mes
Puntos: 1
Respuesta: resultados extraños en operaciones matematicas

Estoy viendo que el saldo de dos clientes diferentes es el mismo:
6.82121026329696e-13

Uno resultó de restar 61.100-61.100 y el otro de restar 38.497-38497....


muy loco no?
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #6 (permalink)  
Antiguo 15/02/2010, 06:54
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 20 años, 1 mes
Puntos: 1
Respuesta: resultados extraños en operaciones matematicas

Estoy viendo que el saldo de dos clientes diferentes es el mismo:
6.82121026329696e-13

Uno resultó de restar 61.100-61.100 y el otro de restar 38.497-38497....


muy loco no?
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #7 (permalink)  
Antiguo 15/02/2010, 07:07
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 20 años, 1 mes
Puntos: 1
Respuesta: resultados extraños en operaciones matematicas

cambié el formato double a float en 10,2... vamos a ver si funciona.
gracias
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar

Etiquetas: matematicas, operaciones, resultados, extraño
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




La zona horaria es GMT -6. Ahora son las 06:18.