money_format()要求参数2为双精度


money_format() expects parameter 2 to be double

我试图给货币格式2个变量,但我收到了一条错误消息,这就是主题

我做得像

$pricetotal = $price * $each_item['quantity'];
$cartTotal = $pricetotal + $cartTotal;
$minicartTotal = $pricetotal + $cartTotal;
setlocale(LC_MONETARY, "en_GB.UTF-8");
$pricetotal = money_format("%n", $pricetotal);

我收到了这个代码的错误信息

setlocale(LC_MONETARY, "en_GB.UTF-8");
$_SESSION ['minicart'] = $minicartTotal = money_format("%n", $cartTotal);
$cartTotal = money_format("%n", $cartTotal);

你也可以看到$minicartTotal$cartTotal都在做同样的事情。。。但我所做的是,我给了它一个不同的变量数,但内容是相同的。

停止错误的最佳方法是什么?

最简单的方法就是如下键入数字:

$_SESSION['minicart'] = $minicartTotal = money_format("%n", (double)$cartTotal);

但最好的方法是确保$price$each_item['quantity']integer,因为它们是示例中唯一的未知变量,如果它们不是这些类型,则会出现错误。