oracle语句中,某个段值想四舍五入,并且保留小数点的后2位,是不是有函数可以直接写出来;

oracle语句中,某个段值想四舍五入,并且保留小数点的后2位,是不是有函数可以直接写出来;,第1张

1、ROUND(A/B,2)

ROUND()函数是会将计算结果进行四舍五入的,如果所需要的值需要进行四舍五入,就可以选择这个函数,可以有一个参数,也可以有两个参数;如果有两个param,第一个是你的计算表达式,第二个是需要保留的小数位数。

2、TRUNC(A/B,2)

TRUNC()函数是不会将计算结果进行四舍五入的,如果所需要的值不需要进行四舍五入,就可以选择这个函数,可以有一个参数,也可以有两个参数;如果有两个param,第一个是你的计算表达式,第二个是需要保留的小数位数。

3、TO_CHAR(A/B,‘FM99990.99’)

TO_CHAR()是一个格式化函数,第一个参数是计算表达式,第二个参数是指定格式化的格式,如果保留两位小数则小数点后写两个99,这里的数字9代表的数字,也是一个占位符。

表示该位置上以后会是一个数字,为什么小数点前面会是一个0,而不是9,是因为如果计算结果小于1,那么只会显示小数点和小数点之后的部分,前面的0会忽略掉。

扩展资料

Oracle的体系结构

一个Oracle数据库是一个数据单位的集合,只要目的是为了存储和读取信息。Oracle数据库可以分为逻辑结构和物理结构。

Oracle的逻辑结构是由一个数据库是又一个或多个表空间组成的,一个表空间由逻辑对象组成,一个逻辑对象由多个数据段组成,一个数据段由一批数据区间组成,一个数据区间由若干个连续的数据块组成,一个数据块对相应一个或多个物理块。

数据块数据库使用的I/O最小单元,又称为逻辑块或者ORACLE块。常用的大小为2KB或者4KB。

这种问题有可能是你列的格式引起的,比如ID列类型number(3,2),小数位最多2位,如果超过2位就会四舍五入;

示例如下:

create table a1(id number(3,2))

insert into a1 values(1.23)

insert into a1 values(1.526)

insert into a1 values(1.784)

insert into a1 values(1.23787887)

select * from a1

结果:

ID

1.23

1.53

1.78

1.24

如果不想四舍五入,可以更改number(3,2)

如:

truncate table a1

alter table a1 modify (id number(10,9))

insert into a1 values(1.23787887)

select * from a1

ID

1.237878870

to_number去掉,没啥用,日期减法得出的就是数字,现在的问题是不足一分钟按照一分钟计算(进位),还是四舍五入,还是舍弃,

不足一分钟不算,用

trunc函数,如果四舍五入用楼主的

函数

,如果想全部进位呢,用ceil函数,楼主可以试试


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10655715.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存