<?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 bcsub($a,0,$scale); // 直接截取
}
/**
* 精确加法
* @param $a
* @param $b
* @param string $scale
* @return string
*/
public static function add($a,$b,$scale = '2') {
$new_scale = (int)$scale + 2;
$res = bcadd($a,$b,$new_scale);
return number_format($res, $scale, '.', '');
}
/**
* 精确减法
* @param $a
* @param $b
* @param string $scale
* @return string
*/
public static function sub($a,$b,$scale = '2') {
$new_scale = (int)$scale + 2;
$res = bcsub($a,$b,$new_scale);
return number_format($res, $scale, '.', '');
}
/**
* 精确乘法
* @param $a
* @param $b
* @param string $scale
* @return string
*/
public static function mul($a,$b,$scale = '2') {
$new_scale = (int)$scale + 2;
$res = bcmul($a,$b,$new_scale);
return number_format($res, $scale, '.', '');
}
/**
* 精确除法
* @param $a
* @param $b
* @param string $scale
* @return string
*/
public static function div($a,$b,$scale = '2') {
$new_scale = (int)$scale + 2;
$res = bcdiv($a,$b,$new_scale);
return number_format($res, $scale, '.', '');
}
}