Проблемы с точностью?
Никогда никогда никогда не храните суммы/цены во float!
Храните в int, а потом уже делите на 100, после всех операций.
// UPD
Разумно использовать DECIMAL(11,2) , если СУБД поддерживает.
Перечитайте как работает round без 3 параметра и поймете что у вас накапливается  ошибка с точностью .
Пример:echo round(3.4);         // 3
echo round(3.5);         // 4
и с каждой итерацией она будет расти