tipo precio para numero mostrar formato error ejemplos ejemplo desbordamiento decimales datos dato convertir convert aritmético sql-server variables types numeric

sql-server - precio - tipo de dato decimal



¿Por qué SQL Server arroja un error de desbordamiento aritmético convirtiendo int a tipo de datos numérico? (4)

La precisión y la escala a menudo son malentendidas. En numérico (3,2), quiere 3 dígitos en total, pero 2 a la derecha del decimal. Si quiere 15 => 15.00 entonces el 1 principal causa el desbordamiento (ya que si quiere 2 dígitos a la derecha del decimal, solo hay espacio a la izquierda para un dígito más). Con 4,2 no hay problema porque encajan los 4 dígitos.

Tengo un error al lanzar SQL Server Management Studio al ejecutar este código:

declare @percentage numeric(3,2) set @percentage = cast(15 as numeric(3,2))

pero cuando cambio la declaración numérica a

declare @percentage numeric(4,2) set @percentage = cast(15 as numeric(4,2))

todo va bien

¿Hay alguna limitación para el tipo de datos numéricos?


Numérico define el número TOTAL de dígitos y luego el número después del decimal.

Un numérico (3,2) solo puede contener hasta 9.99.


Veamos, numérico (3,2). Eso significa que tiene 3 lugares para los datos y dos de ellos están a la derecha del decimal, dejando solo uno a la izquierda del decimal. 15 tiene dos lugares a la izquierda del decimal. Por cierto, si pudiera tener 100 como valor, lo aumentaría a numérico (5, 2)


NUMERIC(3,2) significa: 3 dígitos en total, 2 después del punto decimal. Entonces solo tienes un decimal único antes del punto decimal.

Pruebe NUMERIC(5,2) : tres antes, dos después del punto decimal.