简介
PHP 为任意精度数学计算提供了二进制计算器(Binary Calculator),它支持任意大小和精度的数字,以字符串形式描述。
需求
自 PHP 4.0.4 以来,libbcmath 都绑定在 PHP 内部。本扩展不需要其它外部库的支持。
安装
本类函数仅在 PHP 编译时配置了 --enable-bcmath 时可用。在 PHP 3 中,本类函数仅在 PHP 编译时没有配置 --disable-bcmath 时可用。
PHP 的 Windows版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。
资源类型
本扩展模块未定义任何资源类型。
预定义常量
本扩展模块未定义任何常量。
-
目录
bcadd -- Add two arbitrary precision numbers
bccomp -- Compare two arbitrary precision numbers
bcdiv -- Divide two arbitrary precision numbers
bcmod -- Get modulus of an arbitrary precision number
bcmul -- Multiply two arbitrary precision number
bcpow -- Raise an arbitrary precision number to another
bcpowmod -- Raise an arbitrary precision number to another, reduced by a specified modulus
bcscale -- Set default scale parameter for all bc math functions
bcsqrt -- Get the square root of an arbitrary precision number
bcsub -- Subtract one arbitrary precision number from another
bcadd()
<?php
$a = '1.234';
$b = '5';
echo bcadd($a, $b); // 6
echo bcadd($a, $b, 4); // 6.2340
?>
bccomp()
<?php
echo bccomp('1', '2') . "\n"; // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1
?>
bcdiv()
<?php
echo bcdiv('105', '6.55957', 3); // 16.007
?>
bcmod()
<?php
echo bcmod('4', '2'); // 0
echo bcmod('2', '4'); // 2
?>
bcmul()
<?php
echo bcmul('1.34747474747', '35', 3); // 47.162
echo bcmul('2', '4'); // 8
?>
bcpow()
<?php
echo bcpow('4.2', '3', 2); // 74.08
?>
bcpowmod()
<?php
$a = bcpowmod($x, $y, $mod);
$b = bcmod(bcpow($x, $y), $mod);
// $a and $b are equal to each other.
?>
bcscale()
<?php
// default scale : 3
bcscale(3);
echo bcdiv('105', '6.55957'); // 16.007
// this is the same without bcscale()
echo bcdiv('105', '6.55957', 3); // 16.007
?>
bcsqrt()
<?php
echo bcsqrt('2', 3); // 1.414
?>
bcsub()
<?php
$a = '1.234';
$b = '5';
echo bcsub($a, $b); // -3
echo bcsub($a, $b, 4); // -3.7660
?>