SQL SERVER中的ROUND()函数有三个参数,请问这三个参数分别代表什么?

如题所述

ROUND的格式:ROUND(p1,p2,p3),其作用是取四舍四入值
P1:要被四舍五入的数字
P2:保留的小数位数
P3:如果为0或不输入,则表示进P1进入四舍五入,如ROUND(123.86,1) =123.90
如果P3是不为0的数,则对P1进行截断,可以理解为不四舍五入 ROUND(123.86,1,1)=123.80
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-23
numeric_expression
精确数字或近似数字数据类型类别的表达式,或者可以隐式转换为 float 数据类型的表达式。

length
numeric_expression 舍入到的精度。当 length 为正数时,numeric_expression 舍入到 length 所指定的小数位数。当 length 为负数时,将按照 length 所指定的数值,在小数点左侧对 numeric_expression 进行舍入。

function
要执行的运算类型。当省略 function 或使用值 0(默认)时,将对 numeric_expression 进行舍入。当指定非 0 值时,将对 numeric_expression 进行截断。
第2个回答  2017-10-24
差点被误导了,发布以下标准答案:
ROUND(X): 返回参数X的四舍五入的一个整数。
mysql> select ROUND(-1.23);
-> -1
mysql> select ROUND(-1.58);
-> -2
mysql> select ROUND(1.58);
-> 2
ROUND(X,D): 返回参数X的四舍五入的有 D 位小数的一个数字。如果D为0,结果将没有小数点或小数部分。
mysql> select ROUND(1.298, 1);
-> 1.3
mysql> select ROUND(1.298, 0);
-> 1