psql除法保留小数,实现向上取整和向下取整操作
在psql中,使用1/4得到的结果是0,因为/它取得是整数,但是有些场景我们是需要保留小数的,还有些场景需要向上取整,或者四舍五入的。
今天就总结下psql保留小数的方法
我用到的方法是类型转换,类似于c中int/int为int类型,而float/int则为float。
select round(1::numeric/4::numeric,2)
将除数被除数转换为numeric类型,保留两位小数,此时可以得到 0.25
最近的使用中我是用的是cast转换,如下:
MAX(ceil(round( cast ( infos.qty31days as numeric )/ cast( 31 as numeric),2))) AS qty1days
ceil即向上取整,1.4和1.6均为2
当然还有floor()函数 即四舍五入, 1.4为1 ,则 1.6为2
暂时用到这些,之后学习到新的会继续更新。
补充:postgresql保留小数位数的方法
还是需要通过cast函数 cast A as B
它可以用于类型转换,也可以用来确定小数位数
-- # dom 平均 SELECT cast(AVG(CAST(dom AS FLOAT)) AS decimal(10,2)) -- as decimal(15,2) FROM estate_expect_deal_price_params_data_test where "provinceCode"='ON' AND "createdDate" =date(now())
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
PostGresql 实现四舍五入、小数转换、百分比的用法说明
需求:两个整数相除,保留两位小数并四舍五入,完了转成百分比形式,即4/5=0.80=80% 1.两个整数相除: idn_dw=> select 4/5; ?column? ---------- 0 (1 row) 在sql运算中,"/"意思是相除取整,这样小数部分就会被舍去. 2.用cast将被除数转成小数 idn_dw=> select cast(4 as numeric)/5; ?column? ------------------------ 0.8000000000
-
postgresql 除法保留小数位的实例
我就废话不多说了,大家还是直接看代码吧~ \x select 8/(100-3) as c1, round(8/(100-3) ,4) as c2, round(8/(100-3)::numeric ,4) as c3, 8/(100-3)::numeric as c4 ; -[ RECORD 1 ]-------------- c1 | 0 c2 | 0.0000 c3 | 0.0825 c4 | 0.08247422680412371134 (1 row) 补充:PostgreSQL整数除法
-
postgresql 中round函数的用法说明
round函数是去小数点,我查过好多方法并不好用,于是有了 round(cast(a/b as numeric), 2) 这个就可以用,要加个cast才可以的 补充:postgresql中to_char和round的混合使用 在postgresql中大家都用过round吧,当遇到小数的时候该如何显示呢?看例子 SELECT to_char(round(127 * 0.1 / 67543,6)*10000,'90.99') 1.88 SELECT to_char(round(127 * 0.1 /
-
psql除法保留小数,实现向上取整和向下取整操作
在psql中,使用1/4得到的结果是0,因为/它取得是整数,但是有些场景我们是需要保留小数的,还有些场景需要向上取整,或者四舍五入的. 今天就总结下psql保留小数的方法 我用到的方法是类型转换,类似于c中int/int为int类型,而float/int则为float. select round(1::numeric/4::numeric,2) 将除数被除数转换为numeric类型,保留两位小数,此时可以得到 0.25 最近的使用中我是用的是cast转换,如下: MAX(ceil(round(
-
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
js中小数向上取整数,向下取整数,四舍五入取整数的实现. 1.ceil() 向上-------------ceil英文意思是:天花板-----------就是在上 2.floor() 向下-------------ceil英文意思是:地面-----------就是在下 3.round() 四舍五入-------------ceil英文意思是:大约-----------就是附近 直接看下面的例子,结果一目了然.代码下面的是对应的打印结果. Math.floor(3/4) 0 Math.floor
-
C#编程实现四舍五入、向上及下取整的方法
本文实例讲述了C#编程实现四舍五入.向上及下取整的方法.分享给大家供大家参考,具体如下: 在处理一些数据时,我们希望能用"四舍五入"法实现,但是C#采用的是"四舍六入五成双"的方法,如下面的例子,就是用"四舍六入五成双"得到的结果: double d1 = Math.Round(1.25, 1);//1.2 double d2 = Math.Round(1.24, 1);//1.2 double d3 = Math.Round(1.26, 1);
-
详解Python3除法之真除法、截断除法和下取整对比
概述 在Python3中,数学运算中的除法被分为两种,分别是"真除法",即无论任何类型相除的结果都会保留小数点,和我们实际的数学运算结果一致,而"截断除法",则是无论任何类型相除的结果都会省略结果的小数部分,剩下最小的能整除的整数部分. 以下是两种除法的基本形式: # 真除法 X / Y # 截断除法 X // Y 真除法 X = 8 Y = 2 Z = 3 print(X / Y) print(X / Z) 示例结果: 4.0 2.6666666666666665
-
SQL四舍五入、向下取整、向上取整函数介绍
round() 遵循四舍五入把原值转化为指定小数位数,如:round(1.45,0) = 1;round(1.55,0)=2 floor()向下取整 如:floor(1.45)= 1,floor(1.55) = 1 ,floor(-1.45)= -2 ,floor(-1.55) = -2 ceiling()向上取整 如:ceiling(1.45) = 2,ceiling(1.55)=2,ceiling(-1.45) = -1,ceiling(-1.55)=-1
-
jquery向上向下取整适合分页查询
在用ajax进行分页查询时,分页的数目要用到取整函数 <script language="javascript"> var uu=Math.floor(5.36) //向下取整 结果为5 var uu=Math.floor(5.88) //结果为5 Math.ceil(5.33) //向上取整,结果为6 Math.round(5.55) //四舍五入 结果为6 math.round(5.22) //结果为5 </script>
-
python3 中的几种除法介绍,小数的不同显示
环境:python3.6.1 一.python3 中的除法 在python3中,一个算数表达式中遇到除法时,有两种不同的除法方式可以选择,分别是/ 和 // .不同的表达式有不同的运行结果,在这里做个详细说明. 1. / 操作符(真除法) 在python3中,/操作符在表达式中时运行的永远是真除法,无论接受任何类型,结果都会保持小数部分. print(4/2) # 2.0 print(4/2.0) # 2.0 print(5/2) # 2.5 2. // 操作符(Floor除法) 在python
-
C++详解使用floor&ceil&round实现保留小数点后两位
目录 C++四舍五入保留小数点后两位 1.floor函数 2.ceil函数 3.round函数 C++四舍五入保留小数点后两位 示例 #include <iostream> using namespace std; int main() { double i = 2.235687; double j = round(i * 100) / 100; cout << "The original number is " << i << endl
-
go浮点数转字符串保留小数点后N位的完美解决方法
最近在项目中碰到很多次float转string,同时要求保留小数点后几位,并且去掉小数点后0的场景 虽然问题很简单,但是隔了挺久没处理这种场景就有些生疏了,自己也搜了一下,很多回答都不太满意.这里贴一下自己的做法,如果有更好的解决办法的话,还请多多指教 // 主要逻辑就是先乘,trunc之后再除回去,就达到了保留N位小数的效果 func FormatFloat(num float64, decimal int) string { // 默认乘1 d := float64(1) if decima
-
实现js保留小数点后N位的代码
在JS中,一般实现保留小数点后N位的话,都是利用toFixed函数 复制代码 代码如下: <script language="javascript"> document.write("<h1>JS保留两位小数例子</h1><br>"); var a=2.1512131231231321; document.write("原来的值:"+a+"<br>"); docume
随机推荐
- Java 正则表达式匹配模式(贪婪型、勉强型、占有型)
- 2个比较经典的PHP加密解密函数分享
- javascript 面向对象,实现namespace,class,继承,重载
- 实用:IE浏览器精典技巧两则
- asp.net中使用cookie传递参数的方法
- Discuz 6.0+ 批量注册用户名
- 浅谈Python数据类型判断及列表脚本操作
- Android系统默认对话框添加图片功能
- Docker中容器数据卷(Data Volume)和数据管理详解
- Bootstrap一款超好用的前端框架
- 第一次接触神奇的Bootstrap表单
- Lua脚本语言简介
- node.js [superAgent] 请求使用示例
- 详解JavaScript中js对象与JSON格式字符串的相互转换
- Android 自定义组件卫星菜单的实现
- php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
- JS 实现 ajax 异步浏览器兼容问题
- C#中的where泛型约束介绍
- 手把手教你使用DedeCms V3的在线采集图文教程
- android获取屏幕宽高与获取控件宽高(三种方法)