これは、おおよその精度として知られています 。これはエラーではありません。DECIMAL
MySQLで。
一方、浮動小数点の比較には、次のようにいつでも高精度デルタを使用できます。
SELECT
`foo`,
`bar`,
IF(ABS(`foo`-`bar`)<1E-13, 0, `foo`-`bar`) AS zero_compared
FROM
t
ご覧のとおり、ここでのデルタは1E-13
です。 (通常はそれで十分です)
これは、おおよその精度として知られています 。これはエラーではありません。DECIMAL
MySQLで。
一方、浮動小数点の比較には、次のようにいつでも高精度デルタを使用できます。
SELECT
`foo`,
`bar`,
IF(ABS(`foo`-`bar`)<1E-13, 0, `foo`-`bar`) AS zero_compared
FROM
t
ご覧のとおり、ここでのデルタは1E-13
です。 (通常はそれで十分です)