tipo - truncar a dos decimales sql
Escriba un nĂºmero con dos lugares decimales SQL server (10)
Así es como los niños lo están haciendo hoy:
DECLARAR @test DECIMAL (18,6) = 123.456789
SELECT FORMAT (@test, ''##. ##'') 123.46
¿Cómo se escribe un número con dos decimales para el servidor sql?
En general, puede definir la precisión de un número en SQL definiéndolo con parámetros. Para la mayoría de los casos, esto será NUMERIC(10,2)
o Decimal(10,2)
- definirá una columna como un Número con 10 dígitos totales con una precisión de 2 (lugares decimales).
Editado para mayor claridad
Este trabajo para mí siempre guarda fracciones de dos dígitos
23.1 ==> 23.10
25.569 ==> 25.56
1 ==> 1.00
Cast(CONVERT(DECIMAL(10,2),Value1) as nvarchar) AS Value2
Esto permitirá un total de 10 dígitos con 2 valores después del decimal. Significa que puede acomodar el valor del valor antes del decimal hasta 8 dígitos y 2 después del decimal.
Para validar, ponga el valor en la siguiente consulta.
DECLARE vtest number(10,2);
BEGIN
SELECT 10.008 INTO vtest FROM dual;
dbms_output.put_line(vtest);
END;
Multiplique el valor que desea insertar (por ejemplo, 2.99) por 100
Luego inserte la división por 100 del resultado agregando .01 hasta el final:
299.01/100
Prueba esto:
declare @MyFloatVal float;
set @MyFloatVal=(select convert(decimal(10, 2), 10.254000))
select @MyFloatVal
Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount
Si está bien redondeando el número en lugar de truncarlo, entonces es solo:
ROUND(column_name,decimals)
Si solo necesitas dos decimales, la forma más simple es ...
SELECT CAST(12 AS DECIMAL(16,2))
O
SELECT CAST(''12'' AS DECIMAL(16,2))
Salida
12.00
Use la función Str()
. Se necesitan tres argumentos (el número, el número de caracteres totales para mostrar y el número de decimales para mostrar
Select Str(12345.6789, 12, 3)
muestra: ''12345.679'' (3 espacios, 5 dígitos, 12345, un punto decimal y tres dígitos decimales (679). - Redondea si tiene que truncar, (a menos que la parte entera sea demasiado grande para el tamaño total, en cuyo caso asteriscos se muestran en su lugar.)
para un total de 12 caracteres, con 3 a la derecha del punto decimal.
prueba esto
SELECT CONVERT(DECIMAL(10,2),YOURCOLUMN)