Oracle 实验探索四种Oracle 数字舍入函数

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

各位老铁们好,相信很多人对Oracle 实验探索四种Oracle 数字舍入函数都不是特别的了解,因此呢,今天就来为大家分享下关于Oracle 实验探索四种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 实验探索四种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 实验探索四种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 数字舍入函数
念安я

这篇文章写的真不错!刚好我在学习Oracle数据库的时候遇到这个问题,刚好查了Oracle文档说有这四种取整函数,结果你这里总结的很详细,操作步骤也很清晰,对我很有帮助!

    有15位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
冷嘲热讽i

作为一名开发工程师,经常会用到数字取整功能,这篇博文介绍了四种常用的取整函数,分别详细阐述了他们的应用场景,例如ROUND能够用于精确控制保留小数位数,FLOOR 用于向下取整等。很有用!

    有14位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
↘▂_倥絔

我理解这四个函数的确有不同的用法,但是有时候还是会比较迷糊,特别是当数量级很大的数字数据的时候,函数的效果差异也很明显。希望能有更多具体的例子进行说明。

    有10位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
打个酱油卖个萌

Oracle的这些数字取整函数确实挺实用的,尤其是开发过程中需要根据业务逻辑对数值进行处理时,能够大幅提高效率和准确性!

    有17位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
屌国女农

这篇文章讲解的很透彻,让我清楚了解了Oracle中四种取整函数的功能区别。之前总是把ROUND和TRUNC混淆,感谢博主分享的知识!

    有17位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
夏至离别

我感觉这个标题有点枯燥,或许可以换成更加吸引人的标题,比如“轻松掌握Oracle数字取整,从此告别数值精度烦恼!”

    有10位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
暖瞳

我一直在用SQL Server,想了解一下Oracle数据库,看了这篇文章后发现 Oracle的取整函数确实更全面一些,学习学习!

    有16位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
秒淘你心窝

虽然这四种函数介绍得很有条理,但是感觉代码示例还是可以改进一下,增加更多的实际场景应用案例,能更加直观地帮助读者理解。

    有9位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
揉乱头发

读了文章后发现 ROUND 和 FLOOR 的区别确实挺重要的,我之前总是把他们当成了同一个功能。 这种细微的差别在开发中可是至关重要的!

    有7位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
∞◆暯小萱◆

学习Oracle数据库真是一件枯燥的事儿啊,还好这篇文章讲解的很清晰,让我对数字取整函数终于有一个大致的了解了。

    有18位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
爱到伤肺i

其实对于熟悉编程语言的我来说,这些数字取整函数并不难理解, Oracle文档已经解释得很清楚了。 文章可以简单一些,直接把功能总结出来就好。

    有5位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
回到你身边

博主写的太详细了,我只需要知道几个常用的函数就可以使用,这样一堆例子看下来还是有点累的。 可以多添加一个 "常用取整函数总结" 的部分?

    有14位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
南初

这四个函数确实很有用,但是不知道怎么在实际项目中进行应用,能不能提供一些案例参考? 让我更能理解他们的作用。

    有13位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
箜篌引

文章里没有提到对负数的处理方式, 这种情况下不同的取整函数结果会如何呢?(比如-1.5经过四种函数分别处理的结果是什么?)

    有7位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
青衫故人

Oracle数据库的功能真不少啊,学习起来也挺费时间。 这篇文章对我来说很实用,感谢作者分享!

    有19位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
秘密

我觉得文章的语言可以再简洁一些, 避免使用过多的专业术语,可以让小白更容易理解。

    有18位网友表示赞同!

Oracle 实验探索四种Oracle 数字舍入函数
夏日倾情

博主真是太棒了,这样详细的讲解正好帮我打消我对 Oracle 数据库“复杂难懂”的误解。我已经迫不及待想实践一下这些函数!

    有19位网友表示赞同!

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

(0)
小su的头像小su
上一篇 4小时前
下一篇 4小时前

相关推荐

发表回复

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