Domanda

esiste un modo per memorizzare nel database un numero con o senza punto decimale?L'utente può memorizzare nel database numeri come 10 e 10.1 - per memorizzare i numeri in MySQL utilizzo la colonna del tipo di dati decimale , quindi per questo esempio,nel database verranno memorizzati 10.00 e 10.10 .

Ma dovrò memorizzare la forma esatta del numero per utente, quindi in questo caso 0 10 e 10.1 .

È possibile risolverlo a livello di database o devo modificarlo a livello di applicazione?

È stato utile?

Soluzione

fare uso su 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

o if

if (format(@number,0)=@number, format(@number,0),
  if (format(@number,1)=@number, format(@number,1), @number))

Altri suggerimenti

un modo è quando si effettua la query di selezione per omettere questo zero iniziale

http://www.foscode.com/remove-trailing-zeros-mysql-decimal-fields /

Potresti semplicemente salvare qualsiasi cosa l'utente abbia inserito come VARCHAR, in modo da memorizzare esattamente ciò che ha inserito.Quindi, quando ne hai bisogno, puoi caricarlo dal DB e analizzarlo al valore float corrispondente secondo necessità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top