PHP保留小数
bcadd — 2个任意精度数字的加法计算
左操作数和右操作数求和 ,scale 用于设置结果中小数点后的小数位数。
bcadd ( string $left_operand , string $right_operand [, int $scale ] ) : string
<?php $a = '1.234'; $b = '5'; echo bcadd($a, $b); // 6 echo bcadd($a, $b, 4); // 6.2340 ?>
bccomp — 比较两个任意精度的数字
bccomp ( string $left_operand , string $right_operand [, int $scale = int ] ) : int
<?php echo bccomp('1', '2') . "\n"; // -1 echo bccomp('1.00001', '1', 3); // 0 echo bccomp('1.00001', '1', 5); // 1 ?>
bcdiv — 2个任意精度的数字除法计算
bcdiv ( string $left_operand , string $right_operand [, int $scale = int ] ) : string
<?php echo bcdiv('105', '6.55957'); // 16.007 echo bcdiv('105', '6.55957', 3); // 16.007 ?>
bcmod — 对一个任意精度数字取模
bcmod ( string $left_operand , string $modulus ) : string
<?php echo bcmod('4', '2'); // 0 echo bcmod('2', '4'); // 2 ?>
bcmul — 2个任意精度数字乘法计算
bcmul ( string $left_operand , string $right_operand [, int $scale = int ] ) : string
<?php echo bcmul('1.34747474747', '35', 3); // 47.161 echo bcmul('2', '4'); // 8 ?>
bcpowmod----将任意的精确数提高到另一个,再用指定的模量还原
bcpowmod ( string $base , string $exponent , string $modulus [, int $scale = 0 ] ) : string
<?php $a = bcpowmod($x, $y, $mod); $b = bcmod(bcpow($x, $y), $mod);// $a and $b are equal to each other. ?>
bcscale — 设置所有bc数学函数的默认小数点保留位数
bcscale ( int $scale ) : bool
<?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 ?>
bcsqrt — 任意精度数字的二次方根
bcsqrt ( string $operand [, int $scale ] ) : string
<?php echo bcsqrt('2', 3); // 1.414 ?>
bcsub — 2个任意精度数字的减法
bcsub ( string $left_operand , string $right_operand [, int $scale = int ] ) : string
<?php $a = '1.234'; $b = '5'; echo bcsub($a, $b); // -3 echo bcsub($a, $b, 4); // -3.7660 ?>