写一个有两位小数的SQL服务器

你如何写一个数字有两位小数的sql服务器?

尝试这个

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

使用Str()函数。 它有三个参数(数字,要显示的总字符数,以及要显示的小数位数

  Select Str(12345.6789, 12, 3) 

显示:“12345.679”(3个空格,5位12345,一个小数点和三位十进制数字(679)) – 如果必须截断,则循环(除非整数部分对于总大小来说太大,在这种情况下星号代替显示。)

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

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

编辑清晰

这个工作对我来说总是保持两位数的分数

23.1 == 23.10

25.569 ==> 25.56

1 ==> 1.00

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

代码截图

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

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

要么

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

产量

 12.00 

如果您将数字舍入而不是将其截断,那么这只是:

 ROUND(column_name,decimals) 

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

然后插入除以100的结果添加.01到结尾:

 299.01/100 

这将允许小数点后的总共10个数字和2个数值。 这意味着它可以容纳小数点后8位数字和小数点后2位的数值。

要validation,请将该值放在以下查询中。

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

尝试这个:

  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