Oracle数据库的四舍五入函数你真的了解吗?

概述“四舍五入”是我们最早接触的数学概念之一,数字取整也是我们最常接触的一种需求样式。在财务相关系统中,四舍五入的算法有时候对系统用户造成巨大的影响。在Orac

大家好,今天来为大家解答Oracle数据库的四舍五入函数你真的了解吗?这个问题的一些问题点,包括也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

1、环境介绍和准备

这里选择Oracle 11gR2版本进行测试。

SQL 从v$version 选择*;

测试不同类型的数据。

SQL从t中选择*;

2、四种基本取整函数

Oracle 中的四个取证函数是:ceil、floor、trunc 和round。每一种都有不同的含义和特点,适合不同的场景。

2.1、天花板

Ceil的原意是返回第一个大于当前值的整数。这里要注意一个“大”的概念。最简单的理解就是我们数学中的数轴。 Ceil 返回数轴上当前值右侧的第一个整数值。

SQL select id, ceil(id) from t;

这里我们主要关注负数的ceil结果,与我们直观的想法有些不同。并且ceil 不是圆形的。

2.2、地板

地板对应天花板,应该说是完全相反的。 ceil 取固定轴右侧的第一个整数值。 Floor 确定数轴左侧的第一个整数值,这是一个小动作。

Oracle数据库的四舍五入函数你真的了解吗?

SQL select id, Floor(id) from t;

Floor的作用是找到一个比当前值更小的整数。

2.3.截断

trunc 是一个“多用途”函数。我们习惯了它对日期类型的处理。当trunc输入参数为日期类型时,用于截取日后的时分秒信息。全部将按计划转换为00:00:00。但trunc面对数字类型输入时,也会截取小数点后的数字。

SQL select id, trunc(id) from t;

trunc 对于数字没有“四舍五入”的概念,而是直接“截断”数字。

2.4、圆形

严格来说,只有round才能真正具有“四舍五入”的选择动作。

SQL select id, round(id) from t;

只有round才有我们通常意义上的舍入动作。

3、取整函数的精度scale取值

其中一些舍入函数可以采用可选参数来指示设置精度。我们目前的数据状态如下:

SQL从t中选择*;

Oracle数据库的四舍五入函数你真的了解吗?

trunc 和round 可以支持函数缩放参数。

SQL select id, trunc(id,1), round(id,1) from t;如果设置为正数,则将处理返回的小数点后的位数。如果我们设置一个负数怎么办?

SQL select id, trunc(id,-1), round(id,-1) from t;

如果设置为负数,则截取小数点前的操作。

4、mod与remainder

mod 取余数。我们经常使用的“模”运算是基于取模运算的。取余器的作用也是取余。两者有什么区别?

SQL 从对偶中选择mod(11,4), 余数(11,4);SQL 从对偶中选择mod(0,4), 余数(0,4);SQL 选择mod(-11,4), 余数(-11) ,4) 从对偶;

当求余运算的两个参数都是整数时,我们基本上就明白问题是什么了。但一旦出现负数,无论是除数还是被除数,mod 的行为就与经典的余数模型有些不同。

SQL 从对偶中选择mod(-11,-4), 余数(-11,-4);SQL 从对偶中选择mod(11,-4), 余数(11,-4);

准确的说,mod的函数值为:n2-n1*floor(n2/n1)。因此,出现负数时要注意取模的问题。

余数也有余数的作用,那么有什么区别呢?关键点在于计算公式的下限。对于余数,Oracle不选择floor,而是选择round。

总结

Oracle 提供了许多自定义函数。正确正确地使用它们可以给我们带来很大帮助。

用户评论

Oracle数据库的四舍五入函数你真的了解吗?
微信名字

我最近在学习 Oracle 数据库的四种数字取整函数确实感觉很有用!尤其是 TRUNC 函数,用它处理浮点数的时候很方便。之前都不知道这些功能的存在,感谢这个博客介绍!

    有12位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
怅惘

了解Oracle数据库挺重要啊,这四个取整函数经常用到。感觉文章讲解得很清楚,而且还给出了详细的示例代码,对于我这种新手来说太实用了!

    有20位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
滴在键盘上的泪

作为一名 Oracle 开发者,我一直都使用 TRUNC 函数来进行浮点数四捨五入运算,却不知道还有 ROUND、FLOOR 和 CEIL 这些函数。今天看了你的博客,豁然开朗!以前的方法真是不够灵活啊。

    有19位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
最迷人的危险

你这篇文章写的很有深度,把数据库取整函数讲解得透彻而易懂。不过我觉得对于初学者来说,可以多提供些实际案例展示这四个函数的应用场景,这样会更加直观易懂。

    有11位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
爱你心口难开

我一直在用SQL Server,这篇博客让我觉得Oracle 的这些取整函数确实很有特色。我现在更想去学习一下Oracle数据库了!

    有19位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
迁心

这篇文章写得挺棒的,内容很实用!之前在写程序的时候遇到过类似的需求,但没有找到合适的函数来解决。看来要好好学习一下 Oracle 数据库的四个取整函数!

    有14位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
隔壁阿不都

讲道理,文章写的还是不错的,但我觉得对于这种基本知识,最好是在数据库入门教程中进行讲解,这样更加适合新手理解。

    有17位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
请在乎我1秒

这四个数字取整函数真是太有用啦!尤其是FLOOR 函数,能帮我们快速得到浮点数向下取整的结果。感谢博主分享这么好的信息!

    有8位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
素婉纤尘

文章提到的 ROUND 函数有时候也会产生意料之外的结果,大家使用的时候需要注意。我觉得可以再详细解释一下 ROUND 函数的规则和使用方法,帮助读者更好地理解!

    有17位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
慑人的傲气

感觉这篇文章缺少一些实际的代码实例,虽然讲解了函数的功能,但在具体应用场景下还是有点抽象。希望作者能够增加一些实际案例,让读者更容易理解和记忆这些函数的使用方法。

    有17位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
抚笙

很不错的一篇博文,帮助我理解了 Oracle 数据库中常见的取整函数,以后在项目开发中可以用到!

    有5位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
墨城烟柳

文章写的逻辑清晰,内容非常详细,对Oracle数据库的理解提升不少!强烈推荐给想要学习数据库的朋友们阅读。

    有15位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
日久见人心

这四个函数听起来很专业,我还没有接触过具体的使用场景,希望作者能提供更具体的案例讲解,这样我就更容易理解了!

    有15位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
冷落了♂自己·

我经常在数据处理中遇到需要取整的需求,看这篇博文终于找到了Oracle数据库中的合适的工具。非常感谢作者的分享!

    有5位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
海盟山誓总是赊

觉得文章写的不错,很适合新手学习Oracle数据库四种数字取整函数。希望能多更新一些实用技巧和案例分析!

    有14位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
残留の笑颜

之前一直没了解过这四个取整函数,这下知道了可以好好学一学了!感觉 Oracle 数据库的功能很多很有用,以后要多实践练习!

    有18位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
几妆痕

这篇文章虽然简单地介绍了四种取整函数,但我觉得没有深入到具体的应用场景。如果能结合实际项目进行讲解,效果会更好!

    有8位网友表示赞同!

Oracle数据库的四舍五入函数你真的了解吗?
话扎心

学习一个新的数据库系统确实很需要时间,希望以后还能看到作者更多关于Oracle数据库的分享,比如一些更高级的操作技巧!

    有18位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/198803.html

(0)
小su's avatar小su
上一篇 2024年9月26日 上午12:59
下一篇 2024年9月26日 上午1:01

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注