PHP常见数学函数及BC高精度数学函数用法(本类函数仅在 PHP 编译时配置了 --enable-bcmath 时可用。)

bcadd — 2个任意精度数字的加法计算

说明

string bcadd ( string $left_operand , string $right_operand [, int $scale ] )

  • 左操作数和右操作数求和
    参数
    left_operand
    左操作数,字符串类型
    right_operand
    右操作数,字符串类型

scale
此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。

返回值
2个操作数求和之后的结果以字符串返回

范例

<?php
$a = '1.234';
$b = '5';
echo bcadd($a, $b);     // 6
echo bcadd($a, $b, 4);  // 6.2340
?>

bccomp — 比较两个任意精度的数字

说明

int bccomp ( string $left_operand , string $right_operand [, int $scale = int ] )

  • 把right_operand和left_operand作比较, 并且返回一个整数的结果.

参数
left_operand
左边的运算数, 是一个字符串.

right_operand
右边的运算数, 是一个字符串.

scale
可选的scale参数被用作设置指示数字, 在使用来作比较的小数点部分.

返回值
如果两个数相等返回0, 左边的数left_operand比较右边的数right_operand大返回1, 否则返回-1.

范例

<?php
echo bccomp('1', '2') . "\n";   // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1
?>

bcdiv — 2个任意精度的数字除法计算

说明

string bcdiv ( string $left_operand , string $right_operand [, int $scale = int ] )
- 左操作数除以右操作数

参数
left_operand
左操作数,字符串类型

right_operand
右操作数,字符串类型

scale
此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。

返回值
返回结果为字符串类型的结果,如果右操作数是0结果为null

范例

<?php
echo bcdiv('105', '6.55957', 3);  // 16.007
?>

bcmod — 对一个任意精度数字取模

说明

string bcmod ( string $left_operand , string $modulus )

  • 对左操作数使用系数取模

参数
left_operand
字符串类型的左操作数

modulus
字符串类型系数

返回值
返回字符串类型取模后结果,如果系数为0则返回null

范例

<?php
echo bcmod('4', '2'); // 0
echo bcmod('2', '4'); // 2
?>

bcmul — 2个任意精度数字乘法计算

说明

string bcmul ( string $left_operand , string $right_operand [, int $scale = int ] )

  • 左操作数乘以右操作数
    参数
    left_operand
    字符串类型的左操作数.

right_operand
字符串类型的右操作数.

scale
此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。

返回值
返回结果为字符串类型.

范例

<?php
echo bcmul('1.34747474747', '35', 3); // 47.161
echo bcmul('2', '4'); // 8
?>

bcpow — 任意精度数字的乘方

说明

string bcpow ( string $left_operand , string $right_operand [, int $scale ] )

  • 左操作数的右操作数次方运算.

参数
left_operand
字符串类型的左操作数.

right_operand
字符串类型的右操作数.

scale
此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。

返回值
返回结果为字符串类型.

范例

<?php
echo bcpow('4.2', '3', 2); // 74.08
?>

bcsub — 2个任意精度数字的减法

说明

string bcsub ( string $left_operand , string $right_operand [, int $scale = int ] )
- 左操作数减去右操作数.

参数
left_operand
字符串类型的左操作数.

right_operand
字符串类型的右操作数.

scale
此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。

返回值
返回减法之后结果为字符串类型.

范例

<?php
$a = '1.234';
$b = '5';
echo bcsub($a, $b);     // -3
echo bcsub($a, $b, 4);  // -3.7660
?>

bcsqrt — 任意精度数字的二次方根

说明

string bcsqrt ( string operand[,int o p e r a n d [ , i n t scale ] )

  • 返回操作数的二次方根.

参数
operand
字符串类型的操作数.

scale
此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。

返回值
返回二次方根的结果为字符串类型,如果操作数是负数则返回null.

范例

<?php
echo bcsqrt('2', 3); // 1.414
?>

bcscale — 设置所有bc数学函数的默认小数点保留位数

说明

bool bcscale ( int $scale )

  • 设置所有bc数学函数的未设定情况下得小数点保留位数.

参数
scale
小数点保留位数.

返回值
成功时返回 TRUE, 或者在失败时返回 FALSE。

范例

<?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
?>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值