一、前言

在写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中除法计算保留整数或几位小数(除法那些事儿!)相关推荐

  1. 保留两位小数除法算式_除数是两位小数除法练习题.doc

    除数是两位小数除法练习题 精品文档2016全新精品资料-全新公文范文-全程指导写作 –独家原创 PAGE1 / NUMPAGES1 除数是两位小数除法练习题 列竖式计算小数除以整数时,1.按整数除法的 ...

  2. javascript 数据保留位数(整数保留整数,n位小数保留n位小数)

    运算符%判断 handleData(data) {let obj;if (typeof data !== 'number') {return this.$message.error('数据格式有误') ...

  3. 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块中做这样的事情: ...

  4. 小数除以整数在c语言,小数除法竖式计算的错因分析

    一. 问题的提出 新教材使用后第二次教学小数除法,同事们有的按新教材的教学顺序教.有的仍然按老教材的教学顺序教,感觉老教材更符合学生的认知规律,易于学生接受.我想研究一下到底哪一种教学顺序更适合学生. ...

  5. 保留两位小数除法算式_两位小数除法练习题竖式计算

    精品文档 2016 全新精品资料 - 全新公文范文 - 全程指导写作 – 独家原创 1 / 10 两位小数除法练习题竖式计算 一.一般乘法竖式计算题 65×0.0.0016×10.65×0.1 0 . ...

  6. C#中TimeSpan只保留整数时间

    C#中TimeSpan只保留整数时间 程序中有时候需要记录运行的相对时间.于是就用了DateTime.Now-StartTime得出的是TimeSpan类型. 然而默认的格式中秒后面保留了很多位小数( ...

  7. html:input标签限制输入整数和一位小数、两位小数

    (1)整数和一位小数 <input  type="number" placeholder="请输入扣分" οnkeyup="value=valu ...

  8. 保留两位小数除法算式_北师大|五年级上册|第一周周测·小数除法(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. ...

  9. 保留两位小数除法算式_小学数学小数除法练习题

    小学数学小数除法练习题 篇一:小数除数练习卷 班级姓名 一.列竖式计算 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 ...

最新文章

  1. 基于深度学习的视觉三维重建研究总结
  2. mysql error 1236_解决MySQL数据库同步1236错误
  3. Java中对POI的单元格设置背景色
  4. 【Python】字典哈希表按键(key)值(value)顺序和逆序输出
  5. 计算机领域中随处可见的抽象
  6. supervisor 守护多个进程_supervisor管理守护进程
  7. 版本低于1.7的jQuery过滤用户输入数据所使用的正则表达式存在缺陷
  8. 爱尔兰向欧盟上诉:没特别给苹果税收优惠 欧盟手伸的太长
  9. mysql hive 安装 配置_hive 安装配置部署与测试
  10. activiti包含网关
  11. BSD/MIT/Apache许可证印象尚可
  12. levy过程和布朗运动的关系_金融数学之定价模型基础解释【布朗运动|维纳过程|伊藤引理】...
  13. 电脑怎么压缩图片大小kb?压缩图片用什么软件?
  14. 复制的eclipse常用快捷键 和 设计模式理解方式
  15. 影响蓝牙耳机音质的是什么因素?拒绝踩雷,这五款蓝牙耳机赶紧收藏
  16. 伯恩半导体 - ESD 选型指南
  17. 模型压缩Distiller学习
  18. CSS 添加背景图片
  19. ebs R12如何破解ebs用户密码
  20. Python爬虫之scrapy框架介绍

热门文章

  1. 八种生物成像技术,你青睐谁?
  2. 【流媒体服务器Mediasoup】环境部署与demo搭建(二)
  3. 联想m100系列出现异响 声音大 齿轮响等问题解决方法
  4. linux安装包为什么要编译,不解:为什么程序需要安装而不是直接放编译好的可执行文件...
  5. 5.5 定积分应用——元素法
  6. 机器学习排序算法:RankNet to LambdaRank to LambdaMART
  7. 「团队训练赛」2021 Jiangsu Collegiate Programming Contest题解
  8. php仿山楂岛留言本源码
  9. 为什么开直通车后搜索上不来?手淘压制搜索如何解决?
  10. 重组人碱性成纤维细胞生长因子参数说明