返回一个数值表达式,舍入到指定的长度或精度。
| ROUND ( numeric_expression , length [ ,function ] ) |
[img]ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/local/collapse.gif[/img]备注ROUND 始终返回一个值。如果 length 为负数,并且大于小数点前的数字个数,则 ROUND 将返回 0。
如果 length 为负数,则无论什么数据类型,ROUND 都将返回一个舍入的 numeric_expression。
示例 结果
ROUND(748.58, -1)
| 750.00
|
ROUND(748.58, -2)
| 700.00
|
ROUND(748.58, -3)
| 1000.00
|
[img]ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/local/collapse.gif[/img]参数numeric_expression
精确数值或近似数值数据类别(bit 数据类型除外)的[url=ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/html/ee53c5c8-e36c-40f9-8cd1-d933791b98fa.htm]
表达式[/url]。
length
numeric_expression 的舍入精度。length 必须是 tinyint、smallint 或 int。如果 length 为正数,则将 numeric_expression 舍入到 length 指定的小数位数。如果 length 为负数,则将 numeric_expression 小数点左边部分舍入到 length 指定的长度。
function
要执行的操作的类型。function 必须为 tinyint、smallint 或 int。如果省略 function 或其值为 0(默认值),则将舍入 numeric_expression。如果指定了 0 以外的值,则将截断 numeric_expression。
[img]ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/local/collapse.gif[/img]返回类型返回与 numeric_expression 相同的类型。
[img]ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/local/collapse.gif[/img]示例A. 使用 ROUND 和估计值以下示例显示了两个表达式,阐释使用了 ROUND 后,最后一位数将始终为估计值。
[img]ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/local/copycode.gif[/img]复制代码
| SELECT ROUND(123.9994, 3), ROUND(123.9995, 3)GO |
下面是结果集:
[img]ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/local/copycode.gif[/img]复制代码
| ----------- -----------123.9990 124.0000 |
B. 使用 ROUND 和舍入近似值以下示例显示舍入和近似值。
[img]ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/local/copycode.gif[/img]复制代码
| SELECT ROUND(123.4545, 2);GOSELECT ROUND(123.45, -2);GO |
下面是结果集:
----------
123.4500
(1 row(s) affected)
--------
100.00
(1 row(s) affected)
C. 使用 ROUND 截断以下示例使用了两个 SELECT 语句,用于阐释舍入和截断之间的区别。第一个语句舍入结果。第二个语句截断结果。
[img]ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/local/copycode.gif[/img]复制代码
| SELECT ROUND(150.75, 0);GOSELECT ROUND(150.75, 0, 1);GO |
下面是结果集:
[img]ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/local/copycode.gif[/img]复制代码
| --------151.00(1 row(s) affected)--------150.00(1 row(s) affected) |