如何在PHP中正确使用更高的数字进行数学运算

如何在PHP中正确使用更高的数字进行数学运算,php,math,Php,Math,我试图显示总金额,即产品价格乘以数量 这对1000以下的数字非常有效,但在1000以上的数字上加一个点,我的脚本就会中断。我怎样才能解决这个问题 我有这些数字: 150,00 1.200,00 它们用变量$price循环 然后,我将替换点的所有逗号,如下所示: $subtotalreken = str_replace(',','.',$price); $totalfinal = $subtotalreken * $cart['quantity']; $subtotaleken然后包含: 1

我试图显示总金额,即产品价格乘以数量

这对1000以下的数字非常有效,但在1000以上的数字上加一个点,我的脚本就会中断。我怎样才能解决这个问题

我有这些数字:

150,00
1.200,00
它们用变量
$price
循环

然后,我将替换点的所有逗号,如下所示:

$subtotalreken = str_replace(',','.',$price);
$totalfinal = $subtotalreken * $cart['quantity'];
$subtotaleken然后包含

150.00
1.200.00
然后我将其乘以如下数量:

$subtotalreken = str_replace(',','.',$price);
$totalfinal = $subtotalreken * $cart['quantity'];
两种产品的数量都是2,如果我回送
$totalfinal
,这是我的结果:

300
2.4
为什么是2.4?而不是2.400


我需要欧式/荷兰语格式,所以每三个数字加一点,逗号后加一分。我该怎么做呢?

在计算之前,请删除数字中的任何格式(只需确保数字始终有2位小数):

然后进行计算(数字单位为美分),并向用户显示格式化的数字:

echo number_format($number * $qunatity / 100, '.', ',', 2);
假设“数字”使用逗号作为小数点,点作为千位分隔符:删除所有点并用点替换逗号,使
1.234,56
变为
1234.56

$value = (float) strtr("1.234,56", ["." => "", "," => "."]); // 1234.56
您可以使用数字\格式再次格式化该值:

echo number_format($value, 2, ",", "."); // 1.234,56

这里到底有什么问题?为什么你的代码会在整个过程中添加点?为什么不格式化数字,因为它们只需要输出?仅供参考,请使用
$subtotaleken=number_格式($price,2'.','')PHP不会自动添加数千个分隔符。此外,php中的标准十进制分隔符是点,而不是逗号。您必须做一些事情来添加它们,比如使用sprintf根据区域设置将数字格式化为字符串。请解释你的数字1.200,00来自哪里。^那。。。这个问题有一点暗示。。。