点击蓝色字关注“SQL数据库运维”

ROUND() 函数
ROUND 函数用于把数值字段舍入为指定的小数位数。
SQL ROUND() 语法
SELECT ROUND(column_name,decimals) FROM table_name
参数 | 描述 |
column_name | 必需。要舍入的字段。 |
decimals | 必需。规定要返回的小数位数。 |
注:如果 decimals为正数,则将 column_name 列的数值舍入到 decimals 指定的小数位数。如果 decimals 为负数,则将 column_name 列的数值小数点左边部分舍入到 decimals指定的长度。
SQL Server ROUND() 实例
1、下面的 SQL 语句将ROUND()函数中指定固定的值,进行返回数据结果(左滑查看结果):
SELECT ROUND(100.52345,-3) --结果:0.00000SELECT ROUND(100.12345,-1) --结果:100.00000SELECT ROUND(100.12345,0) --结果:100.00000SELECT ROUND(100.12345,1) --结果:100.10000SELECT ROUND(100.12345,2) --结果:100.12000SELECT ROUND(100.12345,3) --结果:100.12300SELECT ROUND(100.12345,4) --结果:100.12350SELECT ROUND(100.12345,5) --结果:100.12345SELECT ROUND(12.345,2,1) --结果:12.340SELECT ROUND(12.345,2,0) --结果:12.350
根据以上例子总结:
ROUND 始终返回一个值。如果 decimals 为负数,并且大于小数点前的数字个数,则 ROUND 将返回 0。
第一个参数是取值的数据,第二个参数是精度,第三个参数是数据取值模式(四舍五入还是截断),其中第三个参数是可选参数,默认是四舍五入模式。
从上面结果可以看出,数据并非只保留两位小数,而是保留两位有效小数。
从上面可以看出,默认不使用第三个参数是四舍五入模式。
更加容易理解的例子:
A. 使用 ROUND 和估计值
以下示例显示了两个表达式,阐释使用了 ROUND 后,最后一位数将始终为估计值。(左滑查看结果)
SELECT ROUND(123.9994, 3) --结果:123.9990SELECT ROUND(123.9995, 3) --结果:124.0000
B. 使用 ROUND 和舍入近似值
以下示例显示舍入和近似值。(左滑查看结果)
SELECT ROUND(123.4545, 2) --结果:123.4500SELECT ROUND(123.45, -2) --结果:100.00
C. 使用 ROUND 截断
以下示例使用了两个 SELECT 语句,用于阐释舍入和截断之间的区别。第一个语句舍入结果。第二个语句截断结果。(左滑查看结果)
SELECT ROUND(150.75, 0) --结果:151.00SELECT ROUND(150.75, 0, 1); --结果:150.00

点击关注“SQL数据库运维”,后台回复关键字:进群,带你进入高手如云的技术交流群。
文章转载自SQL数据库运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




