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にのみ適用されます。BigDecimaldecimal
浮動小数点型(floatおよびdouble)はその性質上概算であるため、これらの設定は意味がありません。
また、このフィールドのタイプをに変更する場合BigDecimal は、正確な値で初期化する必要があることにも注意してください。