编写一个小数点后两位的数字

如何为 sql 服务器编写一个小数点后两位的数字?

1025523 次浏览

通常,可以通过使用参数定义 SQL 中的数字来定义它的精度。在大多数情况下,这将是 NUMERIC(10,2)Decimal(10,2)-将定义一个列为10个总数字的数字,精度为2(小数位)。

为了清楚起见而编辑的

使用 Str()函数。它需要三个参数(数字、要显示的数字总字符和要显示的小数位数)

  Select Str(12345.6789, 12, 3)

显示:’12345.679’(3个空格,5个数字12345,1个小数点和3个小数位(679)。- 如果必须截断,它会进行舍入(除非整数部分对于总大小来说太大,在这种情况下会显示星号)

总共12个字符,小数点右边3个。

试试这个

SELECT CONVERT(DECIMAL(10,2),YOURCOLUMN)

例如

SELECT CONVERT(DECIMAL(10,2),2.999999)

将导致输出 3.00

enter image description here

这对我有用,并且总是保持两位数分数

23.1 = = > 23.10

25.569 = = > 25.56

1 = = > 1.00

Cast(CONVERT(DECIMAL(10,2),Value1) as nvarchar) AS Value2

代码截图

这将允许总共10个数字,小数后面有2个值。这意味着它可以容纳十进制前8位和十进制后2位的值。

若要验证,请将该值放入以下查询中。

DECLARE vtest  number(10,2);
BEGIN
SELECT 10.008 INTO vtest FROM dual;
dbms_output.put_line(vtest);
END;

将要插入的值(例如2.99)乘以100

然后将结果除以100,并在末尾加上.01:

299.01/100

如果你能接受 四舍五入的数字而不是截断它,那么它就是:

ROUND(column_name,decimals)

如果你只需要两个小数位,最简单的方法是. 。

SELECT CAST(12 AS DECIMAL(16,2))

或者

SELECT CAST('12' AS DECIMAL(16,2))

输出

12.00

试试这个:

 declare @MyFloatVal float;


set @MyFloatVal=(select convert(decimal(10, 2), 10.254000))


select  @MyFloatVal


Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount

现在的孩子们是这样做的:

DECLARE @test DECIMAL(18,6) = 123.456789
SELECT FORMAT(@test, '##.##')

123.46

有两个小数的最简单的方法是使用“ F”参数的 SQL 格式:

SELECT FORMAT(5634.6334, 'F')

这是一个古老的问题,但我使用

FORMAT(10, 'N2')

输出10.00