PHP 5.6.22 is available

# Matemáticas de precisión arbitraria BCMath

• Introducción
• Instalación/Configuración
• Constantes predefinidas
• Funciones de BC Math
• bccomp — Compara dos números de precisión arbitraria
• bcdiv — Divide dos números de precisión arbitraria
• bcmod — Obtiene el módulo de un número de precisión arbitraria
• bcmul — Multiplica dos números de precisión arbitraria
• bcpow — Elevar un número de precisión arbitraria a otro
• bcpowmod — Eleva un número de precisión arbitraria a otro, reducido por un módulo especificado
• bcscale — Establece los parametros de scale por defecto para todas las funciones matemáticas de bc
• bcsqrt — Obtiene la raiz cuadrada de un número de precisión arbitraria
• bcsub — Resta un número de precisión arbitraria de otro

### User Contributed Notes 4 notes

``` Note that when you use implementation of factorial that ClaudiuS made, you get results even if you try to calculate factorial of number that you normally can't, e.g. 2.5, -2, etc. Here is safer implementation:<?php/** * Calculates a factorial of given number. * @param string|int \$num * @throws InvalidArgumentException * @return string */function bcfact(\$num){    if (!filter_var(\$num, FILTER_VALIDATE_INT) || \$num <= 0) {        throw new InvalidArgumentException(sprintf('Argument must be natural number, "%s" given.', \$num));    }    for (\$result = '1'; \$num > 0; \$num--) {        \$result = bcmul(\$result, \$num);    }    return \$result;}?> ```
``` It's worth noting that this library is named very wrongly.It may be called 'Binary Calculator', but what you're getting is a decimal calculator that can represent base-10 fractions accurately. ```
``` This extension is an interface to the GNU implementation as a library of the Basic Calculator utility by Philip Nelson; hence the name. ```
``` Needed to compute some permutations and found the BC extension great but poor on functions, so untill this gets implemented here's the factorial function:<?php/* BC FACTORIAL * n! = n * (n-1) * (n-2) .. 1 [eg. 5! = 5 * 4 * 3 * 2 * 1 = 120] */function bcfact(\$n){    \$factorial=\$n;    while (--\$n>1) \$factorial=bcmul(\$factorial,\$n);    return \$factorial;}print bcfact(50); //30414093201713378043612608166064768844377641568960512000000000000?> ```