KING 博主等级

一帆风顺 ⛵️⛵️⛵️

PHP

BCMath任意精度数学运算-加减乘除

钟晓川
2023-06-16 / 17 点赞 / 905 阅读

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取整数函数常用的四种方法

  1. 直接取整,舍弃小数,保留整数:intval()

    intval: 小数转成整数型态

    intval(3.14159);  // 3
    intval(3.64159);  // 3
    intval('ruesin'); // 0
  2. 四舍五入取整: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
  3. 向上取整,有小数就加1:ceil()

    返回不小于 value 的下一个整数,value 如果有小数部分则进一位,分页计算页数时经常会用到

    ceil(3.14159);  // 4
    ceil(3.64159);  // 4
  4. 向下取整:floor()

    返回不大于 value 的下一个整数,将 value 的小数部分舍去取整

    floor(3.14159);    // 3
    floor(3.64159);    // 3
17