gpt4 book ai didi

php - 比较 float - 相同的数字,但不相等?

转载 作者:IT王子 更新时间:2023-10-29 00:04:29 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
How should I do floating point comparison?
php integer and float comparison mismatch

关于电子商务,我有两个变量,$_REQUEST['amount']$carttotal。在尝试处理付款时,它们当然应该匹配,以防止在最后一刻手动覆盖付款金额,或者当然是计算错误。

但是:

$carttotal = $carttotal * 1;
$_REQUEST['amount'] = $_REQUEST['amount'] * 1;

if($carttotal != $_REQUEST['amount']) {
$code = 0; // cart empty under this user - cannot process payment!!!
$message = 'The cart total of ' . $carttotal . ' does not match ' . $_REQUEST['amount'] . '. Cannot process payment.';
$amount = $carttotal;
$json = array('code' => $code,
'message' => $message,
'amount' => $amount);
die(json_encode($json));
} else {
$trnOrderNumber = $client->id . '-' . $carttotal;
}

上面的代码,传递了相同的数字,并没有给我相等的结果。基本上我得到的错误消息就好像 $carttotal != $_REQUEST['amount']true(不相等的变量)。

为了测试 vars,我偷偷加入了:

var_dump($_REQUEST['amount']);
var_dump($carttotal);

查看发生了什么(在我执行 * 1 计算以确保将它们作为 float 而不是字符串处理后)。

我得到了这个:

float(168.57)
float(168.57)

非常非常沮丧。是什么原因造成的?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com