Está acabando com minhas meias ... MySQL DB
peso é definido comodouble (3,3)
INSERT INTO xxx (`weight`) VALUES ( 1.3)
por que o banco de dados armazena 0.999
?
Está acabando com minhas meias ... MySQL DB
peso é definido comodouble (3,3)
INSERT INTO xxx (`weight`) VALUES ( 1.3)
por que o banco de dados armazena 0.999
?
(3,3)
indica um comprimento total de 3 dígitos, com 3 casas decimais. Talvez você queira(6,3)
.Consulte os documentos do MySQL para obter detalhes.
Isso não funcionaria em uma instalação do MySQL 8.0, devido ao seguinte erro:
Entrada
erro
Veja: dbfiddle para o exemplo
No seu caso, você deve estar usando uma versão mais antiga do MySQL que armazenará o valor máximo permitido que é
0.999
.Fixar
Se você criar uma tabela com
double(4,3)
oudouble(6,3)
conforme indicado na resposta aceita, ela deverá funcionar.Definição de tabela
Inserir declaração
Selecionar
Veja: dbfiddle para um exemplo
Nunca use
(m,n)
emFLOAT
ouDOUBLE
. Isso leva a um 'arredondamento' extra e pode levar a um truncamento desnecessário/indesejado (que é o que você tem).