【问题标题】:How to add many values in a good way with bcmath?如何使用 bcmath 以一种好的方式添加许多值?
【发布时间】:2014-07-07 06:50:05
【问题描述】:

如果我想将多个值与 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));

但它使它变得如此难以阅读,而且很容易出错。请告诉我还有另一种解决方法...!?

【问题讨论】:

    标签: php bcmath


    【解决方案1】:

    这种方法没有错,只是隐藏它。

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

    那么你可以简单地:bcsum(array($value1, $value2, ....))

    【讨论】:

    • 封装功能。您只想编写一次样板求和代码。
    • bcsum() 存在吗?我在任何地方都找不到它的文档。
    • @tptcat bcsum() 是您必须自己编写的“通用函数”。
    【解决方案2】:

    按照 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"]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-12
      • 2020-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 2023-03-14
      • 1970-01-01
      相关资源
      最近更新 更多