SQL中ROUND函数负参数含义及round(7.285,-2)输出结果解释
SQL ROUND函数负参数含义及结果逻辑说明
第二个参数负号的含义
ROUND函数的第二个参数为舍入位数参数,正负值对应不同的舍入方向:
- 正值:四舍五入到小数点右侧的对应位数,比如
round(7.285,2)代表保留2位小数 - 0:四舍五入到整数位
- 负值:四舍五入到小数点左侧的对应位数,也就是向十位、百位、千位等高位整数位舍入。比如-1代表舍入到十位,-2代表舍入到百位,-3代表舍入到千位,以此类推。
你得到7.0输出的逻辑说明
你执行的SQL语句为:
round(7.285,-2);
按标准SQL的计算规则,round(7.285,-2)要舍入到百位:7.285的整数部分只有个位数7,百位、十位均为0,十位数值小于5,因此舍入后结果应为0。
你得到7.0的输出,是你使用的数据库存在自定义的ROUND函数实现规则,常见的两种场景:
- 所用数据库不支持负的舍入位数,自动将负数参数修正为0,等价于执行
round(7.285,0),四舍五入到整数后得到7.0 - 部分数据库方言规定,当负舍入位数的绝对值大于数值的整数部分总位数时,不触发高位舍入,仅舍去小数部分,因此得到7.0的结果。
内容的提问来源于stack exchange,提问作者Vaibhav Shekar
相关产品推荐
相关产品推荐

