0

如果我使用 bcmath 函数,它们都将值作为字符串并返回一个字符串。我有几个函数使用 bcmath 来处理货币值。DECIMAL(15,3)在大多数情况下,数据库将这些值存储为 a 。

下面是一个代码示例:

    public function get_payments_total(): string
    {
        $subtotal = '0.0';

        foreach($this->get_payments() as $payments)
        {
            if(!$payments['cash_adjustment'])
            {
                $subtotal = bcadd($payments['payment_amount'], $subtotal);
            }
        }
        return $subtotal;
    }

我的主要问题是:我应该在 PHP 中使用浮点数进行操作,除非在执行 bcmath 操作时,因为这是数据库中的等效数据类型,还是我通常应该避免使用float数据类型,除非在使用数据库创建/更新/读取时?

前一个选项更像是:

    public function get_payments_total(): float
    {
        $subtotal = 0.0;

        foreach($this->get_payments() as $payments)
        {
            if(!$payments['cash_adjustment'])
            {
                $subtotal = (float)bcadd((string)$payments['payment_amount'], (string)$subtotal);
            }
        }
        return $subtotal;
    }

我想,选项三将停止尝试使 PHP 进行更严格的类型化,只要我将 bcmath 与货币数字一起使用,就不要分配数据类型。

4

0 回答 0