gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 07:24:28 26 4
gpt4 key购买 nike

当我在表中存储数值并在 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来存储值。

在保存到数据库之前,如果我有 BigDecimal(10.00) ,保存后,DB返回的值为 BigDecimal(10) . BigDecimal 中的等于方法失败,因为比例改变了。

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

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

最佳答案

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

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

System.out.printf("%10.4d\n", decimalValue);

如果问题是规模差异,您可以 在比较之前将比例调整为适当的值。

关于sql - Oracle 是否为 Number 数据类型存储尾随零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42199210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com