php中高精度数字相加,php高精度数值计算

/**

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

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

* bcdiv — 将两个高精度数字相除

* bcmod — 求高精度数字余数

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

* bcpow — 求高精度数字乘方

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

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

* bcsqrt — 求高精度数字平方根

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

*

* @m 第一个数值

* @n 第二个数值

* @x 方法,比如;add,sub等

* @scale 小数点位数。根据需求更改即可

*/

function calc($m,$n,$x,$scale){

$errors=array(

'被除数不能为零',

'负数没有平方根'

);

switch($x){

case 'add':

$t=bcadd($m,$n,$scale);

break;

case 'sub':

$t=bcsub($m,$n,$scale);

break;

case 'mul':

$t=bcmul($m,$n);

break;

case 'div':

if($n!=0){

$t=bcdiv($m,$n);

}else{

return $errors[0];

}

break;

case 'pow':

$t=bcpow($m,$n);

break;

case 'mod':

if($n!=0){

$t=bcmod($m,$n);

}else{

return $errors[0];

}

break;

case 'sqrt':

if($m>=0){

$t=bcsqrt($m);

}else{

return $errors[1];

}

break;

}

return $t;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值