Мне нужно добавить, умножить и сравнить валютные значения в PHP, и нужно быть уверенным, что это точно до одного цента.
Один из способов - хранить все в поплавке, использовать круглые до и после каждой операции и машины умения epsilon при сравнении для равенства. Довольно громоздкое имхо.
Другим способом является сохранение всего объекта в виде центов в целых типах данных, плюс не забудьте конвертировать назад и вперед в любое время, когда я работаю с базой данных (mysql, где я использую десятичный тип данных). Inelegant, и много ошибок ошибок, imho.
Другой способ - создать собственный "тип данных", сохранить все значения в строках ( "34.12" ) и создать свои собственные функции математической замены. Эта функция будет преобразовывать значение в целые числа внутри, выполнять вычисления и выводить результат снова на строки. Удивительно сложный, imho.
Мой вопрос: какова наилучшая практика для работы с валютными ценностями в PHP? Спасибо!