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 .