round - ¿Cómo almacenar valores decimales en SQL Server?
sql formato numero decimales (8)
Debes usarlo de la siguiente manera:
DECIMAL(m,a)
m
es el número de dígitos totales que puede tener tu decimal.
a
es el número máximo de dígitos que puede tener después del punto decimal.
http://www.tsqltutorials.com/datatypes.php tiene descripciones para todos los tipos de datos.
Estoy tratando de averiguar el tipo de datos decimales de una columna en el servidor SQL. Necesito poder almacenar valores como 15.5, 26.9, 24.7, 9.8, etc.
Asigné un decimal(18, 0)
al tipo de datos de la columna, pero esto no me permite almacenar estos valores.
¿Cuál es la forma correcta de hacer esto?
Durante la mayor parte del tiempo, uso decimal (9,2), que ocupa el menor espacio de almacenamiento (5 bytes) en sql decimal.
Precisión => bytes de almacenamiento
- 1 - 9 => 5
- 10-19 => 9
- 20-28 => 13
- 29-38 => 17
Puede almacenar desde 0 hasta 9 999 999.99 (7 dígitos al frente + 2 dígitos detrás del punto decimal = total de 9 dígitos), que es lo suficientemente grande para la mayoría de los valores.
En MySQL DB decimal(4,2)
permite ingresar solo un total de 4 dígitos. Como ve en el decimal(4,2)
, significa que puede ingresar un total de 4 dígitos, de los cuales dos dígitos están destinados a mantenerse después del punto decimal.
Por lo tanto, si ingresa 100.0 en la base de datos MySQL, mostrará un error como "Valor fuera de rango para la columna".
Por lo tanto, puede ingresar solo en este rango: de 00.00 a 99.99.
La configuración de Decimal
es su precisión y escala o en el idioma normal, cuántos dígitos puede tener un número y cuántos dígitos desea tener a la derecha del punto decimal.
Entonces, si pones PI
en un Decimal(18,0)
, se registrará como 3
?
Si coloca PI
en un Decimal(18,2)
, se registrará como 3.14
?
Si pones PI
en Decimal(18,10)
se registrará como 3.1415926535
.
Las otras respuestas son correctas. Suponiendo que sus ejemplos reflejen la gama completa de posibilidades, lo que desea es DECIMAL(3, 1)
. O, DECIMAL(14, 1)
permitirá un total de 14 dígitos. Es tu trabajo pensar en lo que es suficiente.
Puedes probar esto
decimal(18,1)
La longitud de los números debe ser totalmente 18. La longitud de los números después del punto decimal debe ser solo 1 y no más que eso.
DECIMAL(18,0)
permitirá 0 dígitos después del punto decimal.
Use algo como DECIMAL(18,4)
lugar de eso, ¡debería hacerlo bien!
Eso le da un total de 18 dígitos , 4 de los cuales después del punto decimal (y 14 antes del punto decimal).
request.input("name", sql.Decimal, 155.33) // decimal(18, 0)
request.input("name", sql.Decimal(10), 155.33) // decimal(10, 0)
request.input("name", sql.Decimal(10, 2), 155.33) // decimal(10, 2)