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

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

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

最佳答案

precisionscale设置仅适用于确切的数字类型(即Java中的BigDecimal和MySQL中的decimal)。

浮点类型(floatdouble)就其性质而言是近似值,因此这些设置对它们没有意义。

另请注意,如果您将此字段的类型更改为BigDecimal you should initialize it with precise values as well

09-05 01:11