如何使用bcmath以良好的方式添加多个值?

3
如果我想使用BCMath将多个值相加,可以像这样操作:
$total_cost1 = bcadd($value1, $value2);
$total_cost2 = bcadd($value3, $value4);
$total_cost3 = bcadd($value5, $value6);
$total_cost4 = bcadd($value7, $value8);

$total_cost = 
    bcadd(bcadd($total1_cost, $total2_cost), 
    bcadd($total3_cost, $total4_cost));

但是这样会让它变得难以阅读,容易出错。请问是否有另外一种解决方法?

2个回答

5

这种方法没有问题,只要将它隐藏起来。

您可以编写一个通用函数,它接受一个数字数组并在循环中将它们相加。

然后您可以简单地执行:bcsum(array($value1, $value2, ....))


封装功能。你只想写一次那个样板总结代码。 - Karoly Horvath
bcsum() 存在吗?我无法在任何地方找到它的文档。 - tptcat
@tptcat bcsum() 是一种“通用函数”,需要您自己编写。 - Jonas Staudenmeir

0

继续Karoly的回答,你可以像这样实现它:

function bcsum(array $numbers) : string {
    $total = "0";
    foreach ($numbers as $number) {
        $total = bcadd($total, $number, 2);
    }
    return $total;
}

bcsum(["1", "0.3", "0.33333", "0.033333"]);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接