Os tipos decimais do MySql são um pouco mais complicados do que apenas à esquerda e à direita do ponto decimal.
O primeiro argumento é precisão , que é o número total de dígitos. O segundo argumento é escala que é o número máximo de dígitos à direita do ponto decimal.
Assim,
(4,2)
pode ser qualquer coisa de -99.99
para 99.99
. Por que você está recebendo
99.99
em vez do 3.80
desejado , o valor que você está inserindo deve ser interpretado como maior que 99.99
, então o valor máximo é usado. Talvez você possa postar o código que está usando para inserir ou atualizar a tabela. Editar
Corrigido um mal-entendido sobre o uso de escala e precisão, por http ://dev.mysql.com/doc/refman/5.0/en/numeric-types.html .