文字

BCMath 任意精度数学

  • 简介
  • 安装/配置
    • 需求
    • 安装
    • 运行时配置
    • 资源类型
  • 预定义常量
  • BC 数学 函数
    • bcadd — 2个任意精度数字的加法计算
    • bccomp — 比较两个任意精度的数字
    • bcdiv — 2个任意精度的数字除法计算
    • bcmod — 对一个任意精度数字取模
    • bcmul — 2个任意精度数字乘法计算
    • bcpow — 任意精度数字的成方
    • bcpowmod — Raise an arbitrary precision number to another, reduced by a specified modulus
    • bcscale — 设置所有bc数学函数的默认小数点保留位数
    • bcsqrt — 任意精度数字的二次方根
    • bcsub — 2个任意精度数字的减法

用户评论:

[#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($numFILTER_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
?>

上一篇: 下一篇: