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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top