我试图在php中进行此计算,但却给了我错误的结果。我认为这是对的。
如果我做5000.00 - 100.10它可以工作,但我也希望5,000.00工作。
这是我的代码:
要创建5,000.00,我使用了number_format(5000,2)。 以及100.10
$total = $value1 - $value2;
echo $total;
?>
$ total = -95.00
我试图在php中进行此计算,但却给了我错误的结果。我认为这是对的。
如果我做5000.00 - 100.10它可以工作,但我也希望5,000.00工作。
请帮助......
答案 0 :(得分:3)
如果要对数字进行算术运算,则不能使用千位分隔符(,
)。发生了什么5,000.00
正在被视为5
(它会在点击逗号后立即将其解释为数字),然后您获得5 - 100.10
-95.10
(我想你在你的例子中没有离开.10
。
您需要先转换:
$value1 = floatval(str_replace(',', '', $original_value1))
$value2 = floatval(str_replace(',', '', $original_value2))
我在这里假设你最初将它们作为字符串。这些删除了逗号分隔符。
答案 1 :(得分:1)
听起来你在UI中使用计算混淆了渲染。
用户看到根据其区域设置规则呈现的货币(例如美国的字符串“$ 1,000.00”)是完全合理的,但后面的计算需要在浮点数(例如1000.0)上完成。
所以你必须能够在它们之间来回转换。您不能对String进行算术运算。最好将String解析为float,执行操作,然后将其转换回String以进行渲染。