Det är känt som en ungefärlig precision . Detta är inte ett fel, flytande punkt
datatyper är avsedda att fungera på detta sätt. De kan inte lagra data exakt. Så om det spelar någon roll bör du använda datatyper med fast punkt, som DECIMAL
i MySQL.
Å andra sidan kan du alltid använda precisionsdelta för jämförelser för flyttal, som:
SELECT
`foo`,
`bar`,
IF(ABS(`foo`-`bar`)<1E-13, 0, `foo`-`bar`) AS zero_compared
FROM
t
som du kan se är delta här 1E-13
(normalt räcker det)