Why Subtraction of two equal values in mysql does not equal zero?
both field type are double. See image below
Why Subtraction of two equal values in mysql does not equal zero?
both field type are double. See image below
That's known as a approximate precision . This isn't an error, floating point data types are intended to work such way. They can not store data precisely. So if that matters, you should use fixed-point data types, such as DECIMAL
in MySQL.
On the other hand, you can always use precision delta for comparisons for floating point, like:
SELECT
`foo`,
`bar`,
IF(ABS(`foo`-`bar`)<1E-13, 0, `foo`-`bar`) AS zero_compared
FROM
t
as you can see, here delta is 1E-13
(normally, that will be enough)
This problem is due to floating point precision and calculations on them. You can also refer this Issue for clarity on your problem: