Chinaunix首页 | 论坛 | 博客
  • 博客访问: 148674
  • 博文数量: 29
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 368
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-17 18:06
个人简介

一个直来直去的人,被生活折磨的弯弯曲曲。

文章分类

全部博文(29)

文章存档

2019年(1)

2017年(1)

2014年(13)

2013年(14)

我的朋友

分类: PHP

2017-08-31 15:20:35

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 起可用。
有关 PHP_INI_* 常量进一步的细节与定义参见。

所有 bcmath 函数中十进制数字的数目。参见 。

本扩展模块未定义任何资源类型。

本扩展模块未定义任何常量。
###########################
实例:
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 

阅读(2387) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~