精确计算升级版

<?php
/**
 * 数据计算工具类
 * User: Eden
 * Date: 19-4-26 上午9:23
 */

namespace Common\Util;
class MathUtil extends CommonUtil {
    /**
     * 处理精准度
     * @param $a
     * @param string $scale
     * @return string
     */
    public static function precise($a,$scale = '2') {
        return number_format($a, $scale); // 四舍五入
        //return number_format($a, $scale, '.', ''); // 四舍五入
        //return bcsub($a,0,$scale);  // 直接截取
    }

    /**
     * 精确加法
     * @param $a
     * @param $b
     * @param string $scale
     * @return string
     */
    public static function add($a,$b,$scale = '2') {
        $res = bcadd($a,$b,$scale+2);
        return number_format($res, $scale);
    }


    /**
     * 精确减法
     * @param $a
     * @param $b
     * @param string $scale
     * @return string
     */
    public static function sub($a,$b,$scale = '2') {
        $res = bcsub($a,$b,$scale+2);
        return number_format($res, $scale);
    }

    /**
     * 精确乘法
     * @param $a
     * @param $b
     * @param string $scale
     * @return string
     */
    public static function mul($a,$b,$scale = '2') {
        $res = bcmul($a,$b,$scale+2);
        return number_format($res, $scale);
    }

    /**
     * 精确除法
     * @param $a
     * @param $b
     * @param string $scale
     * @return string
     */
    public static function div($a,$b,$scale = '2') {
        $res = bcdiv($a,$b,$scale+2);
        return number_format($res, $scale);
    }

}

猜你喜欢

转载自www.cnblogs.com/jiqing9006/p/12028648.html