我通过jpa(EclipseLink)在mysql中存储浮点值时存在精度问题。在我的代码中,我用
@Column(precision=15, scale=7)
private float x;
但是,当我存储类似322,249878的值时,数据库将返回322.25。那里发生了什么:)?
最佳答案
precision
和scale
设置仅适用于确切的数字类型(即Java中的BigDecimal
和MySQL中的decimal
)。
浮点类型(float
和double
)就其性质而言是近似值,因此这些设置对它们没有意义。
另请注意,如果您将此字段的类型更改为BigDecimal
you should initialize it with precise values as well。