jpa(EclipseLink)を介してmysqlにfloat値を格納する際の精度に問題があります。私のコードでは、フィールドに次のように注釈を付けています
@Column(precision=15, scale=7)
private float x;
しかし、322,249878のような値を格納すると、データベースは322.25を返します。何が起こっているのですか:)?
jpa(EclipseLink)を介してmysqlにfloat値を格納する際の精度に問題があります。私のコードでは、フィールドに次のように注釈を付けています
@Column(precision=15, scale=7)
private float x;
しかし、322,249878のような値を格納すると、データベースは322.25を返します。何が起こっているのですか:)?
precision
および設定は、正確な数値タイプ(つまり、JavaおよびMySQL)scale
にのみ適用されます。BigDecimal
decimal
浮動小数点型(float
およびdouble
)はその性質上概算であるため、これらの設定は意味がありません。
また、このフィールドのタイプをに変更する場合BigDecimal
は、正確な値で初期化する必要があることにも注意してください。