PHP Добавление 2 десятичных знаков (денег) дает неверные результаты в общей сумме

В моей базе данных MySQL есть таблица счетов клиентов с полем DECIMAL (10,2), которое называется цена.

При получении этих значений в PHP и расчета суммы суммы,

пример: в сценарии

$totalAmount = 0; // initialised them to 

   while(records){              

       $amount = $inv_amount - ($pay_amount + $onamount); //float i guess. 2.22, 14.22
       $totalAmount = $totalAmount + $amount; //float i guess. 2.22, 14.22 ..etc

    }

когдаecho $totalAmount; в последней сумме 0,01 она имеет небольшую ошибку, однако при работе с большими наборами данных около 20000 эта ошибка становится очень значительной, например 200+

Какой самый безопасный способ сделать это при работе с ценами и так далее с этими числами в PHP? Или я в конечном итоге буду иметь потенциальные ошибки округления и тому подобное, которые часто встречаются при работе с типами данных с плавающей запятой?

использует

round 
number_format

самое подходящее решение для этого типа финансового приложения?

Ответы на вопрос(7)

Ваш ответ на вопрос