Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/12/2011, 12:13
Avatar de gnzsoloyo
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, 2 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)