我有一个场景,我从支付网关获得响应,我有总计。
像1250.00
一样。现在我用我从数据库获得的购物车价值交叉检查这个总数。
问题是一段时间
if($cartTotal == $paymentTotal)
大部分时间都失败了,但在某些时候失败了。我不确定这个问题是什么。
我尝试了trim, type casting, === strcmp
,但不知何故,某些交易失败了。我有类型将值转换为int,float,string。
有人能指出我正确的方向吗?任何帮助深表感谢。
答案 0 :(得分:0)
你可以像这样比较浮点变量:
if(abs($cartTotal-$paymentTotal) > 0.00001)
答案 1 :(得分:-1)
逗号是可以搞乱PHP数字处理的一个例子
尝试使用此功能清除您的号码:
/**
* Clean up any numbers
* Remove any characters apart from numbers and point (.)
* Then explicitly cast to a float
* @param $amount
* @return float
*/
function numberSanitise($amount)
{
$amount = floatval(preg_replace('%[^0-9.]%', '', $amount));
return $amount;
}