Доброго времени суток.
Имеется таблица с колонкой типа FLOAT (в ней хранится состояние некоего виртуального счёта).
Списание производится следующим запросом:
UPDATE client_data SET `client_balance` = (`client_balance` - %сумма%) WHERE `id` = %id клиента%
Но работает это следующим образом:
1) Было 1.5, списали 1 — осталось 0,5 (как и должно быть)
2) Было 1.1, списали 1 — осталось 0.1 (как и должно быть)
3) Было 1.1, списали 1.1 —
осталось (внимание) 2,38419E-8!
Собственно, непонятно такое поведение. Почему так?