欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > PG实践|数学函数及其操作(一)

PG实践|数学函数及其操作(一)

2024/11/29 17:43:20 来源:https://blog.csdn.net/L_Lycos/article/details/143179563  浏览:    关键词:PG实践|数学函数及其操作(一)

文章目录

  • 引言
  • 1.1 ABS() - 取绝对值
  • 1.2 CEIL() 或 CEILING() - 向上取整
  • 1.3 FLOOR() - 向下取整
  • 1.4 ROUND() - 四舍五入
  • 1.5 TRUNC() - 截断/截取小数
  • 总结

📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师
🏆 近期荣誉:华为云云享专家、阿里云专家博主、腾讯云优秀创作者、腾讯云TDP-KOL、ACDU成员、墨天轮技术专家博主
🔥 三连支持:欢迎 ❤️关注、👍点赞、👉收藏三连,支持一下博主~

引言

PostgreSQL是一种非常强大的开源关系数据库管理系统,前面已有介绍,可以参考博主其他博文。它提供了一系列的数学函数,以便用户可以执行各种复杂的数学运算。

当前所有测试均以PostgreSQL 14为蓝本测试,其他版本可能有差异,请酌情参考。

PostgreSQL 14.13 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit

在这里插入图片描述

1.1 ABS() - 取绝对值

返回数字的绝对值,正数的绝对值是正数,负数的绝对值是其相反数。
在这里插入图片描述

SELECT ABS(-100);  -- 返回 100
SELECT ABS(6.54);  -- 返回 6.54

1.2 CEIL() 或 CEILING() - 向上取整

返回大于等于指定数字的最小整数。如果参考过博主的其他Oracle相关的文章,可以查看这种计算逻辑,例如一个数为default_1=123.5,使用CEIL函数或者CEILING函数之后的数据应该是124。相对的函数为FLOOR。
在这里插入图片描述

CEIL() CEILING()函数在使用上没有什么区别,都是一样。至于使用哪一个,全凭爱好。
在这里插入图片描述

SELECT CEIL(123.5);    -- 返回 124CEILING(123.5); -- 返回 124

1.3 FLOOR() - 向下取整

返回小于等于指定数字的最大整数。可以参考CEIL函数。
在这里插入图片描述

SELECT FLOOR(123.5);  -- 返回 123
SELECT FLOOR(-123.5); -- 返回 -124

1.4 ROUND() - 四舍五入

对数值进行四舍五入,可以指定小数点后的位数,不指定小数时等同于指定小数位数为0的情况。从官网的测试情况如下面所展示,留意负数位数的情况(感觉有点BT,但是又感觉很有道理)。
在这里插入图片描述

-- 四舍五入为整数
SELECT ROUND(3.14159);   -- 返回 3-- 保留两位小数
SELECT ROUND(3.14159, 2); -- 返回 3.14-- 四舍五入为整数,保留小数位数为 0
SELECT ROUND(3.14159, 0);   -- 返回 3-- 保留小数位数为2,那么没有数值则需要补充0,例如 0.00
SELECT ROUND(314, 2);   -- 返回 314.00-- 如果保留位数为负数,那么就从小数点向前推进负数值的个数,然后补充0,
-- 例如13.14159,保留为-1,那么小数点向前一位,3就置为0,成为10。
SELECT ROUND(13.14159, -1) -- 返回 10
SELECT ROUND(1234.56, -2) -- 返回 1200

为了更方便测试,此处写在一起,并给予测试结果:

-- 四舍五入函数ROUND
SELECT ROUND(3.14159) AS val_1, ROUND(3.14159, 2) AS val_2, ROUND(3.14159, 0) AS val_3,ROUND(314, 2) AS val_4,ROUND(13.14159, -1) AS val_5,ROUND(1234.56, -2) AS val_6;

在这里插入图片描述

1.5 TRUNC() - 截断/截取小数

将数字截断为指定的精度,而不进行四舍五入。TRUNC函数主要用于截取数字或日期,并返回整数或指定格式的日期。
在这里插入图片描述

【用法】

数字截取:TRUNC(number, [decimal_places])

【参数说明】

number:要截断的数字。
decimal_places:可选参数,表示要截断的小数位数。该值必须是正整数或负整数。

注意⚠️:如果decimal_places是正数,则从小数点后开始截断;如果decimal_places是负数,则从整数部分开始向左截断。

【示例】
下面针对一些情况做了一些测试,其实也可以测试下一些整数的切割。

SELECT TRUNC(125.315) as val_1, TRUNC(125.315, 0) as val_2, TRUNC(125.315, 1) as val_3, TRUNC(125.315, 2) as val_4, TRUNC(125.315, -1) as val_5, TRUNC(125.315, -2) as val_6,TRUNC(-125.315) as val_7; 

在这里插入图片描述

理解一些含义对于这个函数就很好使用了,TRUNC函数并不进行四舍五入操作,而是直接截断小数部分。对于整数值,TRUNC函数会保持其整数部分不变。对于浮点数值,TRUNC函数会将其小数部分截断为0。对于负数,TRUNC函数会向0的方向取整,即截断后的结果会向0靠拢。

总结

好了,时间不早了,参考原文写到这里,实践得真知,每天学习一点,慢慢来,学习之旅正在路上。


[引用]

  1. https://www.postgresql.org/docs/current/functions-math.html

欢迎关注博主 「六月暴雪飞梨花」 或加入【六月暴雪飞梨花社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com