java - Java 和 postgres BigDecimal/numeric 值之间的差异

标签 java postgresql precision numeric bigdecimal

我在Java项目中使用BigDecimal类型。我正在尝试使用带有数字字段的函数来保存它。 Java 和 postgres 有不同的值(value)。例如。 Java 中的值 56.97 在 postgres 中保存为 56.9699999999999989。我该如何预防?

最佳答案

如果您访问 postgresql 文档: https://www.postgresql.org/docs/current/datatype-numeric.html

我猜您使用的是实数或 double ,它们被描述为“可变精度,不精确”。

如果您希望它准确,假设我们正在谈论金钱或类似的内容,那么您应该使用数字十进制类型:

NUMERIC(precision, scale)

精度是总位数,小数位数是小数部分的位数。

例如,数字 1234.567 的精度为 7,小数位数为 3。

关于java - Java 和 postgres BigDecimal/numeric 值之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60375836/

相关文章:

postgresql - pgBouncer池化类型的区别

postgresql - 如何在 ALTER TABLE 中设置精度和比例

matlab - eps() 在 MATLAB 中是如何计算的?

java正则表达式在空白处分割,除了xml中的空白

java - 如何通过soapUI发送pdf文件的数组字节

java - maven-compiler-plugin 3.6.0 不编译从注释生成的源

math - float 学有问题吗?

java - 将先前捕获的组与正则表达式匹配(反向引用?)

java - 如何在 bash 变量中存储受计数影响的 PostgreSQL 插入查询行

matlab - 为什么 24.0000 在 MATLAB 中不等于 24.0000?