SQL语句--数值的四舍五入,及位数保留

SQL语句–数值的四舍五入,及位数保留

【关于四舍五入】
round(数值,从第几位小数开始进行四舍五入)
round函数 保留原小数位数,当该位经过四舍五入后是0时,也不能被删除

---我想把【11.38】四舍五入成整数,后保留原小数位数--即:11.00
eg1:SELECT round(11.38,0)

返回结果:
在这里插入图片描述

---我想把【11.68】四舍五入成整数,后保留原小数位数--即:12.00
eg2:SELECT round(11.68,0)

返回结果:
在这里插入图片描述

---我想把【11.68】四舍五入,从第1个小数位后开始,保留原小数位数--即:11.70
eg:SELECT round(11.68,1)

返回结果:
在这里插入图片描述

---我想把【11.68147】四舍五入,从第3个小数位后开始,保留原小数位数--即:11.68100
eg:SELECT round(11.68147,3)

返回结果:
在这里插入图片描述
round(A,B,C)还有第三个参数,是问从否要从B位后截断
当C=0或不填写C时,默认不截断
当C !=0时,即从第B位后开始截断,即使他能五入到第B位
如下例:

---第6位是5,第6位后是8
---round的第三个参数是0,即不从第6位后截断,
---预测结果:对第6位后的数字进行四舍五入的判断,第6位后是8,所以要入上去,
---则返回结果应该位116.48457600

eg:SELECT round(116.48457583,6,0)

返回结果:
在这里插入图片描述

---第6位是5,第6位后是8
---round的第三个参数是1,即要从第6位后截断,不读取第6位后的数字,即使它能入到第6位
---预测结果:不对第6位后的数字进行四舍五入的判断,即使第6位后是8,也不会入上去,
---则返回结果应该位116.48457500

eg:SELECT round(116.48457583,6,1)

返回结果:
在这里插入图片描述

【四舍五入+保留小数位】

---我想把【13.125】四舍五入保留2个有效的小数位数--即:13.13
eg:SELECT CAST(13.125 AS DECIMAL(10,2))

返回结果:
在这里插入图片描述
round(数值类型的字段,从第几位小数开始进行四舍五入)
cast (数值类型的字段 as decimal(整数部分+小数部分共多少位,小数部分多少位))

eg: decimal(6,3)
意思是,该数值整体(整数加小数最多共有6位----第一个参数限制的,小数部分有3位—第二个参数限制的)

下面引用自:http://blog.sina.com.cn/s/blog_18dbf52650102y6zc.html
CAST函数语法规则是:Cast(字段名 as 转换的类型 ),其中类型可以为:

CHAR[(N)] 字符型
DATE 日期型
DATETIME 日期和时间型
DECIMAL float型
SIGNED int
TIME 时间型

关于DECIMAL(10,2)的含义,详见该链接解释,很详细易懂:https://zhidao.baidu.com/question/48817172.html

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值