Насколько точна библиотека PHP bcmath?

Я пишу библиотеку PHP с классом Number, который использует расширение bcmath< /a> для произвольной точности.

У меня есть два вопроса:

  1. Насколько медленнее работает bcmath по сравнению со встроенными типами int и float?

  2. bcmath имеет необязательный аргумент масштаба (по умолчанию 3 цифры). Каков будет хороший уровень точности для класса Number общего назначения, который может использовать каждый? Как такие языки, как Perl (с произвольными числами точности), справляются с масштабированием?


person cdmckay    schedule 15.02.2010    source источник


Ответы (1)


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

Встроенные целые числа хороши до 32 битов в любой системе, некоторые системы поддерживают 64-битные значения. Вы можете проверить, что поддерживает ваша система, проверив значение константы PHP_INT_MAX и определить, хотите ли вы после этого нести накладные расходы математической библиотеки. Для систем с 32-битными целыми числами все, что превышает 32 бита, будет автоматически преобразовано в число с плавающей запятой. Это не проблема, если вы не используете встроенные функции для таких вещей, как round, printf, модуль и т. д.

Я был укушен этим, используя модуль для разделения трафика, поступающего на мой сайт, а также форматирование целых чисел с использованием %d в sprintf: http://af-design.com/blog/2009/10/28/php-64-бит-целочисленный-модуль-почти/< /а>

person Erik Giberti    schedule 18.02.2010