VII. BC math 高精度数学函数
PHP 为任意精度数学计算提供了二进制计算器(Binary Calculator),它支持任意大小和精度的数字,以字符串形式描述。
自 PHP 4.0.4 以来,libbcmath 都绑定在 PHP 内部。本扩展不需要其它外部库的支持。
本类函数仅在 PHP 编译时配置了 --enable-bcmath 时可用。在 PHP 3 中,本类函数仅在 PHP 编译时没有配置 --disable-bcmath 时可用。
PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。
这些函数的行为受 php.ini 的影响。
表格 1. BC 数学库配置选项
名称 | 默认值 | 可修改范围 | 更新记录 |
---|---|---|---|
bcmath.scale | "0" | PHP_INI_ALL | 自 PHP 5.0.0 起可用。 |
所有 bcmath 函数中十进制数字的数目。参见 bcscale()。
本扩展模块未定义任何资源类型。
本扩展模块未定义任何常量。
###########################
实例:
API 接口对接,加密实现过程,16进制转十进制,dechex 函数,不能满足 > 9223372036854775807 的情况(转为float)。
public static function BigIntdechex($code) {
bcscale(0); $result = '';
$len = strlen($code);
for ($i = 1; $i $len; $i++) {
$char = substr($code, $i - 1, 1);
$result = bcadd(bcmul(hexdec($char), bcpow(16, $len - $i)), $result);
}
return $result; }
###########################
思路参考:
http://blog.csdn.net/zhouzme/article/details/51098101