2010-04-06 18 views
9

Necesito poder almacenar números como 3.5 en mi tabla. Así que he usado el campo de tipo decimal. Pero si ingreso 3.5 lo redondeo a 4. ¿Estoy siendo estúpido o no es el punto de decimales tener un punto decimal?El tipo de datos decimales de MS SQL Server redondea

+2

Puede publicar la definición completa de la columna decimal (es decir, la escala y la precisión que ha utilizado), p. DECIMAL (10, 2) - 10 = precisión, 2 = escala. Además, ¿cómo está ingresando el número en una UI? En una declaración SQL? ¿Podrías publicar eso también? – AdaTheDev

+0

Por qué no usa [FLOAT] (http://msdn.microsoft.com/en-us/library/ms173773.aspx), y si necesita redondear siempre los números a 0.0 o 0.5, tome [vea este tema] (http://stackoverflow.com/questions/752655/round-in-ms-sql-on-0-05-or-0-00) – adopilot

+0

yup que funcionó, solo pensé que FLOAT era para números masivos. Pienso que necesito volver a ser consciente de los tipos de datos. gracias adopilot! – iamjonesy

Respuesta

14

Debe declararlo como decimal(18,3) para especificar el número de dígitos después del punto.

+0

sí, fue declarado como decimal (18,3). No estoy seguro de por qué lo redondeé. – iamjonesy

+7

¿Cómo colocó los datos? Tal vez esté utilizando el procedimiento almacenado, y el parámetro también debería tener un tipo decimal (18,3), no solo decimal. – st78

Cuestiones relacionadas