我试图显示产品价格乘以数量的总金额。
这适用于1000以下的数字,但是高于该数字会添加一个点并且我的脚本会中断。我该如何解决这个问题?
我有这些数字:
150,00
1.200,00
它们用可变的$price
循环。
然后我替换所有点的逗号,如下所示:
$subtotalreken = str_replace(',','.',$price);
$subtotalreken then contains
:
150.00
1.200.00
然后我将其乘以这样的数量:
$totalfinal = $subtotalreken * $cart['quantity'];
两种产品的数量都是2,如果我回复$totalfinal
,这是我的结果:
300
2.4
为什么是2.4?而不是2.400?
我需要欧洲/荷兰语格式,所以在逗号之后每三个数字和分数点。我怎样才能做到这一点?
在计算之前从您的数字中删除任何格式(只需确保您总是有2位小数):
$number = preg_replace('/[^\d]/', '', $input);
然后进行计算(数字以美分计)并显示给用户格式化的数字:
echo number_format($number * $qunatity / 100, '.', ',', 2);
假设“数字”使用逗号作为十进制并且点数为千位分隔符:删除所有点并用点替换逗号,以便1.234,56
变为1234.56
:
$value = (float) strtr("1.234,56", ["." => "", "," => "."]); // 1234.56
您可以使用number_format重新格式化该值:
echo number_format($value, 2, ",", "."); // 1.234,56