I have the following sql query in mysql:
SELECT *
FROM _t_test
WHERE pret NOT
IN ( 2.6700, 2.6560, 1.8200 )
I would expect the rows with the value 1.8200 not to be shown, yet I still get them.
Am I missing something?
The field “pret” is double(16,4).
This is a rounding error. A double is not an exact value, so 1.8200 isn’t represented exactly, so the values are not exactly the same.
For MYSQL floating points, see http://dev.mysql.com/doc/refman/5.0/en/problems-with-float.html
See http://en.wikipedia.org/wiki/Double_precision_floating-point_format