我通过 jpa (EclipseLink) 在 mysql 中存储浮点值时遇到精度问题。在我的代码中,我用
@Column(precision=15, scale=7)
private float x;
但是当我存储像 322,249878 这样的值时,数据库返回 322.25。那里发生了什么:)?
我通过 jpa (EclipseLink) 在 mysql 中存储浮点值时遇到精度问题。在我的代码中,我用
@Column(precision=15, scale=7)
private float x;
但是当我存储像 322,249878 这样的值时,数据库返回 322.25。那里发生了什么:)?
precision
和scale
设置仅适用于精确的数字类型(即BigDecimal
在 Java 和decimal
MySQL 中)。
浮点类型 (float
和double
) 本质上是近似的,因此这些设置对它们没有意义。
另请注意,如果您将此字段的类型更改为BigDecimal
您也应该使用精确值对其进行初始化。