Dat staat bekend als een geschatte precisie . Dit is geen fout, drijvend punt
datatypes zijn bedoeld om op die manier te werken. Ze kunnen gegevens niet precies opslaan. Dus als dat van belang is, moet u datatypes met een vast punt gebruiken, zoals DECIMAL
in MySQL.
Aan de andere kant kun je altijd precisiedelta gebruiken voor vergelijkingen voor drijvende komma, zoals:
SELECT
`foo`,
`bar`,
IF(ABS(`foo`-`bar`)<1E-13, 0, `foo`-`bar`) AS zero_compared
FROM
t
zoals je kunt zien, is hier delta 1E-13
(normaal gesproken is dat voldoende)