Los tipos decimales de MySql son un poco más complicados que solo la izquierda y la derecha del punto decimal.
El primer argumento es precisión , que es el número de dígitos totales. El segundo argumento es escala que es el número máximo de dígitos a la derecha del punto decimal.
Así, (4,2)
puede ser cualquier cosa desde -99.99
a 99.99
.
En cuanto a por qué obtienes 99.99
en lugar del deseado 3.80
, el valor que está insertando debe interpretarse como mayor que 99.99
, por lo que se utiliza el valor máximo. Tal vez podría publicar el código que está utilizando para insertar o actualizar la tabla.
Editar
Se corrigió un malentendido sobre el uso de escala y precisión, según http ://dev.mysql.com/doc/refman/5.0/en/numeric-types.html .