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

问题描述 投票:-1回答:2

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

这适用于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?

我需要欧洲/荷兰语格式,所以在逗号之后每三个数字和分数点。我怎样才能做到这一点?

php math
2个回答
1
投票

在计算之前从您的数字中删除任何格式(只需确保您总是有2位小数):

$number = preg_replace('/[^\d]/', '', $input);

然后进行计算(数字以美分计)并显示给用户格式化的数字:

echo number_format($number * $qunatity / 100, '.', ',', 2);

2
投票

假设“数字”使用逗号作为十进制并且点数为千位分隔符:删除所有点并用点替换逗号,以便1.234,56变为1234.56

$value = (float) strtr("1.234,56", ["." => "", "," => "."]); // 1234.56

您可以使用number_format重新格式化该值:

echo number_format($value, 2, ",", "."); // 1.234,56
© www.soinside.com 2019 - 2024. All rights reserved.