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

Problema con campo double

Estas en el tema de Problema con campo double en el foro de Mysql en Foros del Web. Tengo un campo de tipo double en una de mis tablas con el siguiente formato: Código: Field Type Collation Null Key Default impt double(8,2) (NULL) ...
  #1 (permalink)  
Antiguo 17/12/2011, 11:49
 
Fecha de Ingreso: agosto-2011
Ubicación: Cuba, Pinar del Río
Mensajes: 82
Antigüedad: 12 años, 8 meses
Puntos: 0
Problema con campo double

Tengo un campo de tipo double en una de mis tablas con el siguiente formato:

Código:
Field        Type             Collation          Null    Key     Default
impt         double(8,2)   (NULL)             YES              0.00
y tengo el siguiente problema, cuando entro el numero 9.225 debería redondear el número a 9.23 sin embargo me pone 9.22, cómo puedo solucionar esto para que el número me quede redondeado correctamente al introducirselo
  #2 (permalink)  
Antiguo 17/12/2011, 12:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con campo double

Creo que estás algo confundido en cuanto a redondeos se trata, debes considerar que un DOUBLE es un numero de punto flotante por aproximación, por lo que en realidad, si lo representases con todos sus decimales te encontrarías con que el valor puede ser más bien 9.224999999999 (y no lo que ves) o algo así, con lo que aplica la regla general de redondeo.
La solución implementada por MySQL es simple: Tienes dos opciones:
1) Usar DECIMAL(8,2). DECIMAL es el tipo de dato que MySQL especifica en el manual cuando se necesitan decimales precisos y no por aproximación. La implementación es distinta, por lo que su comportamiento también.
2) Usar ROUND(numero,2), para almacenar el valor efectivamente redondeado.
__________________
¿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 17/12/2011, 12:21
 
Fecha de Ingreso: agosto-2011
Ubicación: Cuba, Pinar del Río
Mensajes: 82
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Problema con campo double

Gracias colega, no estaba bien claro en eso las 2 soluciones me han servido, la 2 ya la había analizado, pero estaba en busca d ela 1ra pues esta viendo el caso de que se introduciera un valor manualmente.

Etiquetas: double, tabla, campos
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 13:59.