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

时间:2009-01-14 01:36:40

标签: sql sql-server decimal number-formatting

如何编写一个带有两位小数的数字用于sql server?

10 个答案:

答案 0 :(得分:181)

试试这个

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

答案 1 :(得分:61)

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

  Select Str(12345.6789, 12, 3)

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

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

答案 2 :(得分:34)

通常,您可以通过使用参数定义数字来定义数字的精度。对于大多数情况,这将是NUMERIC(10,2)Decimal(10,2) - 将列定义为总数为10位且精度为2(小数位)的数字。

为清晰起见而编辑

答案 3 :(得分:13)

这项工作对我而言始终保持两位数分数

23.1 ==> 23.10

25.569 ==> 25.56

1 ==> 1.00

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

Code screenshot

答案 4 :(得分:7)

这就是孩子们今天这样做的方式:

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

123.46

答案 5 :(得分:6)

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

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

OR

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

输出

12.00

答案 6 :(得分:5)

如果您使用舍入这个数字而不是截断它,那么它只是:

ROUND(column_name,decimals)

答案 7 :(得分:2)

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

然后将除以结果的除法。插入除法.01到结尾:

299.01/100

答案 8 :(得分:1)

试试这个:

 declare @MyFloatVal float;

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

    select  @MyFloatVal

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

答案 9 :(得分:0)

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

要验证,请将值放在以下查询中。

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