SQL中除法计算保留整数或几位小数(除法那些事儿!)
一、前言
在写Sql 的时候遇到个问题,两个整数 int 类型相除,我希望保留两位小数。
二、问题解决
1、知识普及:
select 10/3
-->3
select 10%3
-->1select 11/4
-->2
select 11%4
-->3
/ 符号是取整,% 符号是取余。在上面的例子中,清晰的展示了它们的作用。需要注意的是 / 取整符号是直接截断的,11除于4结果应该是2.75,取整后就是2,由此可看出它是不会四舍五入的。
2、步入正题:
方法有三种:cast、convert 和 round。这里用10除于3举例。
(1)CAST函数
比较常用的就是CAST函数了,这里就是先将 int类型的 10 转换成了 float ,再去除于3,得出的结果就有无限小数,第一种写法比较特别,刚开始我也没看懂,怎么会多了一个点?!直到看到第二种写法才恍然大悟,只是它将小数位省略不写而已。结果是一样的。
select CAST(10*1./3 as decimal(8,2))
-->3.33select CAST(10*1.0/3 as decimal(8,2))
-->3.33
(2)CONVERT函数
这种功能上和cast 类似,就是写法不同而已。
select CONVERT(decimal(8,2),10*1./3)
-->3.33select CONVERT(decimal(8,2),10*1.0/3)
-->3.33
(3)ROUND函数
最后就是ROUND函数了,保留是保留了,但保留的是两位有效的小数,后面的很多个零就是根据默认类型自动填充的。
select ROUND(10*1./3,2)
-->3.330000select ROUND(10*1.0/3,2)
-->3.330000
要去掉的话也方便,再丢回到前两个函数中转换一下即可,如:
select CONVERT(decimal(10,2),ROUND(10*1.00/3,2))
-->3.33
这方法看似多此一举,但也有他的用处。CAST函数和CONVERT函数都是自动四舍五入的,而ROUND函数有一个参数,设置非0的数后,就会变成直接截断。这里拿11除于4来举例会比较清晰,如下:
select ROUND(11*1.0/4,1)
-->2.800000select ROUND(11*1.0/4,1,6)
-->2.700000
如果这个地方不是很理解,可以先参考我之前的一篇博客 “SQLServer中 ROUND函数、CAST 和 CONVERT函数 的使用详解”。
就先写到这,哈哈!一个小问题被我复杂化了,不喜勿喷。
SQL中除法计算保留整数或几位小数(除法那些事儿!)相关推荐
- 保留两位小数除法算式_除数是两位小数除法练习题.doc
除数是两位小数除法练习题 精品文档2016全新精品资料-全新公文范文-全程指导写作 –独家原创 PAGE1 / NUMPAGES1 除数是两位小数除法练习题 列竖式计算小数除以整数时,1.按整数除法的 ...
- javascript 数据保留位数(整数保留整数,n位小数保留n位小数)
运算符%判断 handleData(data) {let obj;if (typeof data !== 'number') {return this.$message.error('数据格式有误') ...
- oracle怎么变为整数,如何在Oracle 11g SQL中为char添加整数?(How to add integers to char in Oracle 11g SQL?)...
如何在Oracle 11g SQL中为char添加整数?(How to add integers to char in Oracle 11g SQL?) 是否可以在PL / SQL块中做这样的事情: ...
- 小数除以整数在c语言,小数除法竖式计算的错因分析
一. 问题的提出 新教材使用后第二次教学小数除法,同事们有的按新教材的教学顺序教.有的仍然按老教材的教学顺序教,感觉老教材更符合学生的认知规律,易于学生接受.我想研究一下到底哪一种教学顺序更适合学生. ...
- 保留两位小数除法算式_两位小数除法练习题竖式计算
精品文档 2016 全新精品资料 - 全新公文范文 - 全程指导写作 – 独家原创 1 / 10 两位小数除法练习题竖式计算 一.一般乘法竖式计算题 65×0.0.0016×10.65×0.1 0 . ...
- C#中TimeSpan只保留整数时间
C#中TimeSpan只保留整数时间 程序中有时候需要记录运行的相对时间.于是就用了DateTime.Now-StartTime得出的是TimeSpan类型. 然而默认的格式中秒后面保留了很多位小数( ...
- html:input标签限制输入整数和一位小数、两位小数
(1)整数和一位小数 <input type="number" placeholder="请输入扣分" οnkeyup="value=valu ...
- 保留两位小数除法算式_北师大|五年级上册|第一周周测·小数除法(1)
北师大·五年级上册·第一周周测·小数除法(1) 一.计算题 3.6÷1.2= 0.72÷0.9= 2.6÷13= 4.8÷0.4= 4.4÷4= 0.78÷6= 7.2÷0.4= 1÷0.25= 5. ...
- 保留两位小数除法算式_小学数学小数除法练习题
小学数学小数除法练习题 篇一:小数除数练习卷 班级姓名 一.列竖式计算 7.83÷91.35÷2.7 54.4÷0.16 27÷1.8 6.76÷0.52 22.78÷3.4 4.8÷3 18÷48 ...
最新文章
- 基于深度学习的视觉三维重建研究总结
- mysql error 1236_解决MySQL数据库同步1236错误
- Java中对POI的单元格设置背景色
- 【Python】字典哈希表按键(key)值(value)顺序和逆序输出
- 计算机领域中随处可见的抽象
- supervisor 守护多个进程_supervisor管理守护进程
- 版本低于1.7的jQuery过滤用户输入数据所使用的正则表达式存在缺陷
- 爱尔兰向欧盟上诉:没特别给苹果税收优惠 欧盟手伸的太长
- mysql hive 安装 配置_hive 安装配置部署与测试
- activiti包含网关
- BSD/MIT/Apache许可证印象尚可
- levy过程和布朗运动的关系_金融数学之定价模型基础解释【布朗运动|维纳过程|伊藤引理】...
- 电脑怎么压缩图片大小kb?压缩图片用什么软件?
- 复制的eclipse常用快捷键 和 设计模式理解方式
- 影响蓝牙耳机音质的是什么因素?拒绝踩雷,这五款蓝牙耳机赶紧收藏
- 伯恩半导体 - ESD 选型指南
- 模型压缩Distiller学习
- CSS 添加背景图片
- ebs R12如何破解ebs用户密码
- Python爬虫之scrapy框架介绍
热门文章
- 八种生物成像技术,你青睐谁?
- 【流媒体服务器Mediasoup】环境部署与demo搭建(二)
- 联想m100系列出现异响 声音大 齿轮响等问题解决方法
- linux安装包为什么要编译,不解:为什么程序需要安装而不是直接放编译好的可执行文件...
- 5.5 定积分应用——元素法
- 机器学习排序算法:RankNet to LambdaRank to LambdaMART
- 「团队训练赛」2021 Jiangsu Collegiate Programming Contest题解
- php仿山楂岛留言本源码
- 为什么开直通车后搜索上不来?手淘压制搜索如何解决?
- 重组人碱性成纤维细胞生长因子参数说明