0

我正在尝试在 php 中进行此计算,但结果错误。我认为这是对的。

如果我做 5000.00 - 100.10 它可以工作,但我希望 5,000.00 也可以工作。

这是我的代码:

为了创建 5,000.00,我使用了 number_format(5000, 2)。以及 100.10

    $total = $value1 - $value2;

    echo $total;  
?>

$总计 = -95.00

我正在尝试在 php 中进行此计算,但结果错误。我认为这是对的。

如果我做 5000.00 - 100.10 它可以工作,但我希望 5,000.00 也可以工作。

请帮忙...

4

2 回答 2

3

如果要对数字进行算术运算,则不能使用千位分隔符 ( ,)。正在发生的事情5,000.00被读取为5(一旦遇到逗号,它就会停止将其解释为数字)然后你得到5 - 100.10的是-95.10(我想你.10在你的例子中离开了。

您需要先转换:

$value1 = floatval(str_replace(',', '', $original_value1))
$value2 = floatval(str_replace(',', '', $original_value2))

我在这里假设您最初将它们作为字符串。这些删除逗号分隔符。

于 2013-09-05T14:57:41.880 回答
1

听起来您将 UI 中的渲染与计算混淆了。

用户看到根据他们的语言环境规则呈现的货币是完全合理的(例如美国的字符串“$1,000.00”),但后面的计算需要在浮点数上完成(例如1000.0)。

所以你必须能够在它们之间来回转换。您不能对字符串进行算术运算。最好将字符串解析为浮点数,执行操作,然后将其转换回字符串进行渲染。

于 2013-09-05T14:59:14.823 回答