Если работать с деньгами в плавающем состоянии - это плохо, то почему money_format () это делает?

Я болтал о том, как работать с отображением валюты и математикой в ​​PHP, и долгое время сохраняли его в MySQL с использованием типа DECIMAL и с использованием money_format () для форматирования для отображения на веб-странице. Однако сегодня я посмотрел на настоящий прототип:

string money_format ( string $format , float $number )

Я немного запутался. Все, что мне сказали, - избегайте поплавков! Но вот она, основная функция форматирования (скажем, в пять раз быстрее), преобразующая ввод в число с плавающей точкой. number_format () делает то же самое.

Итак, мои вопросы:

  1. Если я не имею дело с дробными центами или триллионами долларов (и я не имею дело ни с тем, ни с другим), должен ли я вообще беспокоиться о том, что отображает и хранит (но никогда не выполняет математические вычисления) валюту, которая была переведена в число с плавающей точкой? Смогу ли я когда-нибудь приблизиться к тому, что погрешности с плавающей запятой изменят мои цифры?

  2. Если ответ на вопрос №1 таков, что я действительно должен быть обеспокоен, то почему money_format () построен таким образом?

21
задан mskfisher 9 May 2012 в 19:15
поделиться