3

我通过 jpa (EclipseLink) 在 mysql 中存储浮点值时遇到精度问题。在我的代码中,我用

@Column(precision=15, scale=7)
private float x;

但是当我存储像 322,249878 这样的值时,数据库返回 322.25。那里发生了什么:)?

4

1 回答 1

7

precisionscale设置仅适用于精确的数字类型(即BigDecimal在 Java 和decimalMySQL 中)。

浮点类型 (floatdouble) 本质上是近似的,因此这些设置对它们没有意义。

另请注意,如果您将此字段的类型更改为BigDecimal 您也应该使用精确值对其进行初始化

于 2012-06-19T15:13:40.910 回答