我试图显示总额,即产品价格乘以数量。
这非常适合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?
我需要欧洲/荷兰语格式,因此逗号后每三个数字和一个美分加一个点。我该怎么办?
答案 0 :(得分:2)
假设“数字”使用逗号作为小数点并将点作为千位分隔符:删除所有点并用点替换逗号,以使1.234,56
变成1234.56
:
$value = (float) strtr("1.234,56", ["." => "", "," => "."]); // 1234.56
您可以使用number_format再次设置值的格式:
echo number_format($value, 2, ",", "."); // 1.234,56
答案 1 :(得分:1)
在进行计算之前,请从您的数字中删除所有格式(只需确保您始终拥有2个小数位数字):
$number = preg_replace('/[^\d]/', '', $input);
然后进行计算(数字以美分表示),并显示给用户格式化的数字:
echo number_format($number * $qunatity / 100, '.', ',', 2);