当我在表中存储数值并在 SQL Developer 中查询该表时,它没有显示数字数据类型的尾随零。
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
来存储该值。
在保存到数据库之前,如果我有BigDecimal(10.00)
,保存后,DB返回的值为BigDecimal(10)
。等于方法BigDecimal
由于比例改变而失败。
而且小数精度不是恒定的。用户可以设置 BigDecimal(10.00) 或 BigDecimal(10.000)
因此,值需要按原样存储在数据库中。
有什么方法可以在oracle中存储尾随零吗?
尾随零的存在是display问题,而不是存储问题。尾随零并不重要,并且无论如何,只要数字的内部格式不重要,values是正确的。之间没有价值差异10
and 10.00000
.
如果您需要尾随零,则可以在转换要显示的值时始终使用格式。例如:
System.out.printf("%10.4d\n", decimalValue);
如果问题是规模差异,您可以set在比较之前将比例调整到适当的值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)