2010-04-06 19 views
9

Devo essere in grado di memorizzare numeri come 3.5 nella mia tabella. Quindi ho usato il campo del tipo decimale. Ma se inserisco 3.5 lo arrotondo a 4. Sono stupido o non è il punto decimale ad avere un punto decimale?Il tipo di dati decimali MS SQL Server arrotonda

+2

Puoi pubblicare la definizione completa della colonna decimale (ad esempio la scala e la precisione che hai utilizzato) ad es. DECIMALE (10, 2) - 10 = precisione, 2 = scala. Inoltre, come stai inserendo il numero - in un'interfaccia utente? In una dichiarazione SQL? Potresti postare anche questo? – AdaTheDev

+0

Perché non usi [FLOAT] (http://msdn.microsoft.com/en-us/library/ms173773.aspx), E se hai bisogno di arrotondare sempre i numeri a 0.0 o 0.5, prendi [guarda questo thread] (http://stackoverflow.com/questions/752655/round-in-ms-sql-on-0-05-or-0-00) – adopilot

+0

sì che ha funzionato, ho pensato che FLOAT fosse per numeri enormi. Pensa che ho bisogno di riprendere in mano i tipi di dati. grazie adottalot! – iamjonesy

risposta

14

È necessario dichiararlo come decimal(18,3) per specificare il numero di cifre dopo il punto.

+0

sì è stato dichiarato come decimale (18,3). Non sono sicuro del perché l'ho arrotondato. – iamjonesy

+7

Come hai inserito i dati? Forse si sta utilizzando la stored procedure - oltre al parametro dovrebbe essere presente anche il tipo decimale (18,3), non solo il decimale. – st78

Problemi correlati