Bem, esse é o problema, tipo de dados. De acordo com documentos :
A sintaxe de declaração para uma coluna DECIMAL é DECIMAL(M,D). Os intervalos de valores para os argumentos no MySQL 5.6 são os seguintes:
M é o número máximo de dígitos (a precisão). Tem um intervalo de 1 a 65. (Versões mais antigas do MySQL permitiam um intervalo de 1 a 254.)
D é o número de dígitos à direita do ponto decimal (a escala). Tem um intervalo de 0 a 30 e não deve ser maior que M.
Portanto, seu
DECIMAL(5,2)
o tipo de coluna pode conter números de até 999.99
. Você terá que alterar a tabela e aumentar a coluna. (Sobre porque o MySQL prefere corromper seus dados ao invés de reportá-los, bem, essa tem sido sua filosofia desde os primeiros anos. Você pode brincar com Modos SQL para corrigir isso.)