поле float

  • Автор темы trompert
  • Дата начала

trompert

Guest
поле float

в одной строке nom=30, в другой =0.3.
делаю sql="select SUM(nom) from $table";
получаю '23.300000011921. откуда берутся 00000011921 не подскажете?
 

alpes

Весь мир на ладони
Если поставить, например: $sum=round($sum,2); Где 2 - количество знаков после запятой, то все нули и чавото там моно отсеч.
Но мне тоже было бы интересно узнать о подобных остатках и как с ними корректно боротся.
Суть проблемы следующая: Есть таблица юзверей в которой есть поле "текущий счет" double(18,2) на который прибавляется/вычитается денежная сумма. И есть таблица изменения счета в которой записываются записи о всех изменениях со счетом и у какого юзверя, т.е. записи вида: "Логин", "ДатаВремя", "Сумма изменения" float(10,2).
Так вот при суммировани таплици изменений по каждому юзеру по идее сумма ( SUM("Сумма изменения" ) ) д.б. точно такой как и та что хранится в таблице самих юзеров в поле "текущий счет", но при сравнении оказывается что у некоторых пользователей она отличается на +/- 0.02 (2 копейки).
Подскажите в чем неточность, или где я ошибся?!
 

kvn

programmer
Если работаешь с деньгами есть неписаное правило:

все деньги в БД хранить в копейках/центах.
т.е. целыми числами.
Да и на курсе Выч. Мат-а первая лекция всегда про "погрешность вычислений".
:)
 
Сверху