MySQL - armazenamento de números com casa decimal
Pergunta
existe alguma forma de armazenar no banco de dados números com ou sem ponto decimal?O usuário pode armazenar no banco de dados números como 10 e 10.1 - para armazenar números no MySQL, eu uso a coluna do tipo de dados decimal , portanto, para este exemplo,no banco de dados serão armazenados 10,00 e 10,10 .
Mas terei de armazenar a forma exata do número por usuário - neste caso, 0 10 e 10.1 .
É possível resolver no nível do banco de dados ou preciso editar no nível do aplicativo?
Solução
fazer uso em case
case format(@number,0)=@number
when 1 then format(@number,0)
else
case format(@number,1)=@number
when 1 then format(@number,1)
else @number
end
end
ou if
if (format(@number,0)=@number, format(@number,0),
if (format(@number,1)=@number, format(@number,1), @number))
Outras dicas
uma maneira é quando você faz a consulta selecionada para omitir este zero à esquerda
http://www.foscode.com/remove-trailing-zeros-mysql-decimal-fields /
Você pode simplesmente salvar tudo o que o usuário inseriu como um VARCHAR, para armazenar exatamente o que ele inseriu.Então, quando você precisar, você pode carregá-lo do banco de dados e analisá-lo para o valor flutuante correspondente, conforme necessário.