如果我使用 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 与货币数字一起使用,就不要分配数据类型。