
17/12/2011, 12:13
|
 | 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) |