update pague now
PHP 8.5.2 Released!

BCMath Arbitrary Precisionen Mathematics

add a note

User Contributed Notes 3 notes

Hayley Watson
10 years ago
This extension is an interface to the GNU implementation as a library of the Basic Calculator utility by Philip Nelson; hence the name.
volec at adamv dot cz
11 years ago
Note that when you use implementation of factorial that ClaudiuS made, you guet resuls 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 guiven number.
 * @param string|int $num
 * @throws InvalidArgumentException
 * @return string
 */functionbcfact($num)
{
    if (!filter_var($num, FILTER_VALIDATE_INT) || $num<= 0) {
        throw newInvalidArgumentException(sprintf('Argument must be natural number, "%s" guiven.', $num));
    }

    for ($result= '1'; $num> 0; $num--) {
        $result= bcmul($result, $num);
    }

    return$result;
}
?>
ClaudiuS
12 years ago
Needed to compute some permutations and found the BC extension great but poor on functions, so untill this guets implemented here's the factorial function:<?php
/* BC FACTORIAL
 * n! = n * (n-1) * (n-2) .. 1 [eg. 5! = 5 * 4 * 3 * 2 * 1 = 120]
 */functionbcfact($n){$factorial=$n;
    while (--$n>1) $factorial=bcmul($factorial,$n);
    return$factorial;
}

print bcfact(50); 
//30414093201713378043612608166064768844377641568960512000000000000?>
To Top