我有以下代码
$amount1 = 7299;
$amount2 = 72.9875;
$amount2_in_cents = round($amount2, 2) * 100;
if ($amount1 != $amount2_in_cents) {
echo "Amount $amount1 != $amount2_in_cents\n";
var_dump($amount1);
var_dump($amount2_in_cents);
} else {
echo "Amounts matched";
}
Run Code Online (Sandbox Code Playgroud)
这是输出
Amount 7299 != 7299
int(7299)
float(7299)
Run Code Online (Sandbox Code Playgroud)
现在我意识到浮点数和整数是不同的,但考虑到四舍五入,我希望这两个值匹配.我通过转换为int来解决它.
所以我的问题是为什么这种比较不能像我预期的那样工作(两个值匹配)?
php ×1