我在通过 jpa (EclipseLink) 在 mysql 中存储浮点值时遇到精度问题。在我的代码中,我用
注释了该字段@Column(precision=15, scale=7)
private float x;
但是当我存储像 322,249878 这样的值时,数据库返回 322.25。那里发生了什么 :)?
最佳答案
precision
和 scale
设置仅适用于精确数字类型(即 Java 中的 BigDecimal
和 decimal
MySQL)。
浮点类型(float
和 double
)本质上是近似值,因此这些设置对它们没有意义。
另请注意,如果您将此字段的类型更改为 BigDecimal
you should initialize it with precise values as well .
关于java - 带有 JPA 的 MySQL 中的 Precision Java Float (EclipseLink),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11103705/