PHP 双重比较

Posted

技术标签:

【中文标题】PHP 双重比较【英文标题】:PHP Double comparision 【发布时间】:2019-01-10 04:11:29 【问题描述】:

PHP 版本 7.1.7 / Laravel 5.4

dump($this_tour->payments_to_operator_sum());

1012.0

dump(gettype($this_tour->payments_to_operator_sum()));

“双”

dump($this_tour->operator_price, gettype($this_tour->operator_price));

“1012.00”,“字符串”

dump((double)$this_tour->operator_price, gettype((double)$this_tour->opeartor_price);

1012.0,“双”

dump($this_tour->payments_to_operator_sum() == (double)$this_tour->operator_price);

为什么会是假的?

我很困惑。

PS。我理解“==”和“===”之间的区别,我想这与它无关。 当我这样做时:

dump((double)1012.0 == (double)"1012.00"); 

我明白了

是的

【问题讨论】:

【参考方案1】:

当我这样做时:

return $this_tour->payments_to_operator_sum()

(而不是“转储”),我得到了:

1011.9999999999999

我猜这就是答案。

【讨论】:

以上是关于PHP 双重比较的主要内容,如果未能解决你的问题,请参考以下文章

双重比较的C ++非常奇怪的行为[关闭]

php算法之选择排序

双重循环的嵌套执行原理

bzoj4765普通计算姬(双重分块)

php 四种基础算法 ---- 选择排序法

在 Python 中对单个数组进行更快的双重迭代