sql – Oracle是否为Number数据类型存储尾随零?
发布时间:2021-01-27 00:33:37 所属栏目:MsSql教程 来源:网络整理
导读:当我在表中存储数值并在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); 如果问题是比例差异,您可以在比较之前将比例设置为适当的值. (编辑:湘西站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |