此方法会去除小数点后多余的0,并保留两位小数
// bcadd、bcsub等方法为php内置的bc数学函数,
//str_replace("0+?$","",$num)用来去除小数点后多余的0
// 减0(- 0)操作是为了保证正则匹配的值为数字类型,否则多余的零不会被去除
function calculateMoney($money_first, $money_second, $operator) {
$result = 0;
switch ($operator) {
case "+":
$result = str_replace("0+?$", "", (bcadd($money_first, $money_second, 2) - 0));
break;
case "-":
$result = str_replace("0+?$", "", (bcsub($money_first, $money_second, 2) - 0));
break;
case "*":
$result = str_replace("0+?$", "", (bcmul($money_first, $money_second, 2) - 0));
break;
case "/":
$result = str_replace("0+?$", "", (bcdiv($money_first, $money_second, 2) - 0));
break;
default:
echo "不支持的计算类型".$operator;exit;
}
return $result;
}