177

sql server 怎么写一个小数点后两位的数字?

4

10 回答 10

234

尝试这个

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

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

将导致输出3.00

在此处输入图像描述

于 2009-02-12T13:35:30.470 回答
74

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

  Select Str(12345.6789, 12, 3)

显示:“12345.679”(3 个空格、5 个数字 12345、一个小数点和三个小数位 (679)。 - 如果必须截断,则舍入,(除非整数部分对于总大小来说太大,在这种情况下而是显示星号。)

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

于 2009-01-14T01:42:10.923 回答
38

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

为清晰起见进行了编辑

于 2009-01-14T01:40:00.663 回答
22

这就是今天孩子们的做法:

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

123.46

于 2017-07-10T21:21:49.000 回答
20

这对我有用,并且总是保留两位小数

23.1 ==> 23.10

25.569 ==> 25.56

1 ==> 1.00

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

代码截图

于 2011-06-19T12:10:06.663 回答
16

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

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

或者

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

输出

12.00
于 2016-12-07T11:09:49.780 回答
7

如果您对数字舍入而不是截断它感到满意,那么它只是:

ROUND(column_name,decimals)
于 2016-10-05T22:16:46.823 回答
2

尝试这个:

 declare @MyFloatVal float;

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

    select  @MyFloatVal

    Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount
于 2017-03-27T05:17:04.583 回答
0

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

然后插入除以 100 的结果,并在末尾添加 .01:

299.01/100
于 2012-04-03T15:21:49.160 回答
0

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

要进行验证,请将值放入以下查询中。

DECLARE vtest  number(10,2);
BEGIN
SELECT 10.008 INTO vtest FROM dual;
dbms_output.put_line(vtest);
END;
于 2012-02-16T14:44:13.660 回答