欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

php关于精准计算的模块 BCMath

程序员文章站 2023-02-28 12:11:13
Php: BCMath   bc是Binary Calculator的缩写。bc*函数的参数都是操作数加上一个可选的 [int scale],比如string bca...
Php: BCMath

 

bc是Binary Calculator的缩写。bc*函数的参数都是操作数加上一个可选的 [int scale],比如string bcadd(string $left_operand, string $right_operand[, int $scale]),如果scale没有提供,就用bcscale的缺省值。这里大数直接用一个由0-9组成的string表示,计算结果返回的也是一个 string。

 

 

bcadd — 将两个高精度数字相加 

bccomp — 比较两个高精度数字,返回-1, 0, 1 

bcp — 将两个高精度数字相除 

bcmod — 求高精度数字余数 

bcmul — 将两个高精度数字相乘 

bcpow — 求高精度数字乘方 

bcpowmod — 求高精度数字乘方求模,数论里非常常用 

bcscale — 配置默认小数点位数,相当于就是Linux bc中的”scale=” 

bcsqrt — 求高精度数字平方根 

bcsub — 将两个高精度数字相减

 

可以参考手册去查这些函数的应用。

 

bcmath的安装

bcmath这个扩展在php的压缩包中都是有的,需要重新编译一下才能够支持;

cd   php-5.2.7/ext/bcmath

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config 

make && make install (make 可以得到so路径)

so路径拷贝到  extension路径

vim php.ini 

extension=bcmath.so

重启apach

 

 

PHP code?

 

/*bcsub 函数说明

此函数将二个高精确度的数字相减,传入二个字符串,以左边的 (left operand) 减去右边的 (right operand) 值。scale 是一个可有可无的选项,表示返回值的?小数点后所需的位数。*/

//下面的代码我是保证了小数点一位数字

$aa=bcsub(134.7,52.5,1);

echo $aa;//exit;

$bb=bcsub($aa,82.2,1);

echo $bb;//exit;

//