/**
* high_precision_calculate 高精度计算.
* @param float|int|string $n1
* @param string $symbol
* @param float|int|string $n2
* @param bool $format
* @param int $scale
* @return float|int|string
*/
function high_precision_calculate($n1, $symbol, $n2, $format = false, $scale = 2)
{
$res = '';
switch ($symbol) {
case '+'://加法
$res = bcadd($n1, $n2, $scale);
break;
case '-'://减法
$res = bcsub($n1, $n2, $scale);
break;
case '*'://乘法
$res = bcmul($n1, $n2, $scale);
break;
case '/'://除法
if ($n1 <= 0 || $n2 <= 0) {
$res = 0;
} else {
$res = bcdiv($n1, $n2, $scale);
}
break;
case '%'://求余、取模
$res = bcmod($n1, $n2);
break;
default:
$res = '';
break;
}
return $format ? (float)price_format($res, $scale) : (float)$res;
}
/**
* 格式化
* @param float|int $price
* @param int $scale
* @return string
*/
function price_format($price, $scale = 2)
{
return number_format($price, $scale, '.', '');
}
php 精度计算
于 2021-11-30 18:37:29 首次发布
本文介绍了一个用于高精度数学运算的PHP函数`high_precision_calculate`,支持加、减、乘、除、取模操作,并能处理负数。同时,还提供了一个`price_format`函数用于格式化货币数值,确保精确到指定小数位数。这两个函数对于财务计算或需要高精度结果的场景非常有用。
摘要由CSDN通过智能技术生成