加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql – Oracle是否为Number数据类型存储尾随零?

发布时间:2021-01-26 19:47:25 所属栏目:编程 来源:网络整理
导读:当我在表中存储数值并在SQL Developer中查询该表时,它没有显示Number数据类型的尾随零. create table decimal_test(decimal_field number(*,10));insert into decimal_test(decimal_field) values(10);insert into decimal_test(decimal_field) values(10.11)

当我在表中存储数值并在SQL Developer中查询该表时,它没有显示Number数据类型的尾随零.

create table decimal_test(decimal_field number(*,10));

insert into decimal_test(decimal_field) values(10);
insert into decimal_test(decimal_field) values(10.11);
insert into decimal_test(decimal_field) values(10.100);
insert into decimal_test(decimal_field) values(10.00);

select * from decimal_test;

结果是

10
10.11
10.1
10

这些值是从java代码处理的.在这种情况下,我使用BigDecimal来存储值.

在保存到DB之前,如果我有BigDecimal(10.00),保存后,从DB返回的值是BigDecimal(10). BigDecimal中的Equals方法失败,因为比例已更改.

而且我的小数精度不是恒定的.用户可以设置BigDecimal(10.00)或BigDecimal(10.000)等.因此,值需要按原样存储在DB中.

有没有办法在oracle中存储尾随零?

解决方法

尾随零的存在是显示问题,而不是存储问题.尾随零并不重要,无论如何,只要值正确,数字的内部格式就不重要了. 10到10.00000之间没有价值差异.

如果需要尾随零,则在转换显示值时始终可以使用格式.例如:

System.out.printf("%10.4dn",decimalValue);

如果问题是比例差异,您可以在比较之前将比例设置为适当的值.

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读