©
本文档使用 PHP中文网手册 发布
[#1] Hayley Watson [2015-10-26 01:30:05]
This extension is an interface to the GNU implementation as a library of the Basic Calculator utility by Philip Nelson; hence the name.
[#2] volek at adamv dot cz [2015-01-15 13:44:49]
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
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;
}
?>
[#3] George Lund [2014-05-20 12:48:15]
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.
[#4] ClaudiuS [2013-02-19 14:25:46]
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
function bcfact($n){
$factorial=$n;
while (--$n>1) $factorial=bcmul($factorial,$n);
return $factorial;
}
print bcfact(50);
//30414093201713378043612608166064768844377641568960512000000000000
?>