В чем разница между bcpow и pow? - PullRequest
3 голосов
/ 02 марта 2011

Может кто-нибудь объяснить мне, если я должен использовать bcpow () вместо pow () и почему?

Я понимаю, что не во всех установках php включена функция bcmath.Поэтому, если я пишу проект с открытым исходным кодом и хочу иметь как можно меньше зависимостей / требований, я бы предпочел использовать pow () в своем коде.

Но каковы недостатки использования pow () над bcpow?()

Ответы [ 3 ]

6 голосов
/ 02 марта 2011

bcpow() является функцией библиотеки BCMath по произвольной точности .

Цитирую введение руководства:

Для математики произвольной точности PHP предлагает двоичный калькулятор, который поддерживает номера любого размера и точность , представленная в виде строк.


С другой стороны, pow() ограничено числами с плавающей точкой , которые имеют ограниченный размер (цитирование) :

Размер поплавка зависит от платформы, хотя максимум ~ 1.8e308 с точностью до примерно 14 десятичных цифр является общим значение (64-битный формат IEEE)


Как правило, вы будете работать с pow() и другими функциями с плавающей точкой (которые, вероятно, быстрее и всегда включены) ; но если вам нужно обработать очень большое число, вам придется работать с bcpow().

0 голосов
/ 02 марта 2011

bcpow используется для значений произвольной точности. В качестве третьего параметра вы можете указать количество цифр после комы.

0 голосов
/ 02 марта 2011

Согласно руководству bc* функции

[...] математика произвольной точности PHP предлагает двоичный калькулятор, который поддерживает числа любого размера и точности, представленные в виде строк.

pow() ограничен максимальным поддерживаемым числовым представлением в системе, в которой он работает.

...