PHP 2个任意精度数字的加减乘除运算,可用BCMath函数,BCMath函数不进行四舍五入计算
BCMath函数的参数
两个操作数加上一个可选的 [int $scale]精确到小数点后几位,比如加法实例如下
bcadd(string $num1, string $num2, ?int $scale = null): string
计算结果返回的也是 string
BCMath函数如下
bcadd — 两个任意精度数字的加法计算
bccomp — 比较两个任意精度的数字
bcdiv — 两个任意精度的数字除法计算
bcmod — 任意精度数字取模
bcmul — 两个任意精度数字乘法计算
bcpow — 任意精度数字的乘方
bcpowmod — 求高精度数字乘方求模
bcscale — 设置/获取所有 bc math 函数的默认小数点保留位数
bcsqrt — 任意精度数字的二次方根
bcsub — 两个任意精度数字的减法
范例
bcadd() 两个任意精度数字的加法计算
<?php
$a = '1.234';
$b = '5';
echo bcadd($a, $b); // 6
echo bcadd($a, $b, 4); // 6.2340
?>
PHP取整数函数常用的四种方法
-
直接取整,舍弃小数,保留整数:intval()
intval: 小数转成整数型态
intval(3.14159); // 3 intval(3.64159); // 3 intval('ruesin'); // 0
-
四舍五入取整:round()
根据参数2指定精度将参数1进行四舍五入。参数2可以是负数或零(默认值)
round(3.14159); // 3 round(3.64159); // 4 round(3.64159, 0); // 4 round(3.64159, 2); // 3.64 round(5.64159, 3); // 3.642 round(364159, -2); // 364200
-
向上取整,有小数就加1:ceil()
返回不小于 value 的下一个整数,value 如果有小数部分则进一位,分页计算页数时经常会用到
ceil(3.14159); // 4 ceil(3.64159); // 4
-
向下取整:floor()
返回不大于 value 的下一个整数,将 value 的小数部分舍去取整
floor(3.14159); // 3 floor(3.64159); // 3