Det er kendt som en omtrentlig præcision . Dette er ikke en fejl, flydende komma
datatyper er beregnet til at fungere på denne måde. De kan ikke gemme data præcist. Så hvis det betyder noget, bør du bruge fastpunktsdatatyper, såsom DECIMAL
i MySQL.
På den anden side kan du altid bruge præcisionsdelta til sammenligninger for flydende komma, som:
SELECT
`foo`,
`bar`,
IF(ABS(`foo`-`bar`)<1E-13, 0, `foo`-`bar`) AS zero_compared
FROM
t
som du kan se, er delta her 1E-13
(normalt vil det være nok)