oracle 保留小数点问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 保留小数点问题相关的知识,希望对你有一定的参考价值。

保留4位小数,且小于1的需要保留整数位0,小数点不足4位的补0,最后结果需要为number类型,例:0.03125
最后结果为:0.0313 、 0.12 结果为:0.1200 ,怎么实现,求大侠帮忙!

参考技术A 直接将栏位数据类型定义为number(18,4)
例如:
create table test1
(a number(18,4));
insert into test1
values(0.03125 );
insert into test1
values(0.12 );
insert into test1
values(1.12 );
select * from test1;
结果:
1 0.0313
2 0.1200
3 1.1200追问

关键是需要的数据类型定义的不是4位小数

追答

数据类型是什么?只是查询出的结果为4位小数吗?

追问

数据类型已经是number(36,6) 只要查询出来的结果转换

追答

create table test1
(a number(36,6))
insert into test1
values(0.031252)
insert into test1
values(0.12)
select a,to_char(a,'99990.9999') from test1

本回答被提问者和网友采纳

sql表小数点前面的0不显示问题

往表里插入数据
INSERT emp_pay VALUES (1, 500, .10)
表里第3个字段decimal类型,结果查询出来的时候显示.10,而不是0.10,怎么显示成0.10呢

declare @c as decimal(6,2)
set @c=0.10
select @c 数字,cast(@c as varchar(20)) 字符

其实从上图中可以看出,SQL输出的结果是没有错的,很可能是程序将其小数点前面的0省略掉了。

参考技术A 查看表里的第三个字段的decimal数据类型,比如decimal(18,0)为取整,decimal(18,2)为插入数据保留2位小数点。decimal(18,2)你插入10的时候会显示位10.00 参考技术B 插入.10,在数据表里看也是0.10的,如果是前台显示问题,那么需要自己格式化下显示格式。 参考技术C 修改下返回的类型,如果是string类型的就可以是这样,可以改为bigDecimal就可以了 参考技术D 显示的时候用convert函数转换成字符类型的,就可以显示成0.10了。

以上是关于oracle 保留小数点问题的主要内容,如果未能解决你的问题,请参考以下文章

Oracle小数点的实际保留问题的4方案

oracle保留两位小数

Oracle数据库中的如何保留两位小数 并且在java中保留两位小说插入数据表中

oracle:求百分比,保留小数点后两位,不会出现.01的情况,也不会出现#######的情况,写一条sql语句

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

如何在Oracle数据库中保留小数点后两位 而且在java中保留两位插入到数据表中