oracle sql 数据库中的 NUMBER 数据类型从 java 插入的舍入值

NUMBER datatype in oracle sql database rounding values inserted from java

我正在将 java 中的数据插入到 oracle 数据库中。

ps1.setDouble(4, Double.parseDouble(record.get(3)));

record.get(3) 是一个包含 -250.8 的字符串。就算我做了

System.out.println(Double.parseDouble(record.get(3)));

我得到 -250.8

代码运行正常,但我在oracle数据库中看到的是-251。 Oracle 中的数据类型是 Number(38,0),它接受十进制数。

如何在 oracle 中显示十进制值?

我也在 Java 中尝试了 Float 而不是 Double 但没有成功

NUMBER(38,0)的Oracle数据类型意味着该列的精度为38,小数位数为0。这意味着该列最多可以存储38位但小数点后0位的值地方。也就是说,它只允许整数。如果您尝试插入非整数值,作为 INSERT 操作的一部分,该值必须四舍五入为最接近的整数。

如果要允许列具有 5 个小数位的值,则需要将其定义为 NUMBER(38,5)