
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函数,楼主可以试试
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)