BC高精度函数

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

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

描述
  • 左操作数和右操作数求和
参数
参数 描述
left_operand 左操作数,字符串类型
right_operand 右操作数,字符串类型
scale 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。
返回值
  • 2个操作数求和之后的结果以字符串返回
举例
// 示例
$result = bcadd(12.3344,15.2255,3); // 27.5599
var_dump($result);
// 结果
string(6) "27.559" // 可以看出最后一位直接舍去

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

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

描述
  • 左操作数减去右操作数
参数
参数 描述
left_operand 左操作数,字符串类型
right_operand 右操作数,字符串类型
scale 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。
返回值
  • 返回减法之后结果为字符串类型
举例
// 示例
$result = bcsub(12.313,13.131323,2);
var_dump($result);
// 结果
string(5) "-0.81"

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

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

描述
  • 左操作数乘以右操作数
参数
参数 描述
left_operand 左操作数,字符串类型
right_operand 右操作数,字符串类型
scale 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。
返回值
  • 返回结果为字符串类型
举例
// 示例
$result = bcmul(1243.11,1.2321,2);
var_dump($result);
// 结果
string(7) "1531.63"

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

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

描述
  • 左操作数除以右操作数
参数
参数 描述
left_operand 左操作数,字符串类型
right_operand 右操作数,字符串类型
scale 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。
返回值
  • 返回结果为字符串类型的结果,如果右操作不能为0
举例
// 示例
$result = bcdiv(12.33,10.25,2);
var_dump($result);
$result = bcdiv(12.33,0,2);
var_dump($result);
// 结果
string(4) "1.20"
Warning: bcdiv(): Division by zero

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

string bcmod( string $left_operand, string $modulus)

描述
  • 对左操作数使用系数取模
参数
参数 描述
left_operand 字符串类型的左操作数
modulus 字符串类型系数
返回值
  • 返回字符串类型取模后结果
举例
// 示例
$result = bcmod(16.01,7);
var_dump($result);
// 结果
string(1) "2"

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

string bcsqrt( string $operand[, int $scale] )

描述
  • 返回操作数的二次方根
参数
参数 描述
operand 字符串类型的操作数
scale 此可选参数用于设置结果中小数点后的小数位数
返回值
  • 返回二次方根的结果为字符串类型,操作数必须是正数
举例
// 示例
$result = bcsqrt(12.13,2);
var_dump($result);
$result = bcsqrt(2,2);
var_dump($result);
// 结果
string(4) "3.48" 
string(4) "1.41"

bcpow — 任意精度数字的乘方
语法

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

描述
  • 左操作数的右操作数次方运算
参数
参数 描述
left_operand 左操作数,字符串类型
right_operand 右操作数,字符串类型
scale 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。
返回值
  • 返回结果为字符串类型
举例
// 示例
$result = bcpow(2.01,3,2);
var_dump($result);
// 结果
string(4) "8.12"

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.
举例
// 示例
$result = bccomp(8.924,3.2,2);
var_dump($result);
$result = bccomp(8.131,8.130,2);
var_dump($result);
// 结果
int(1) 
int(0)

results matching ""

    No results matching ""