Версия 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");
я получил
правда
когда я сделал:
return $this_tour->payments_to_operator_sum()
(вместо ‘dump’) я получил:
+1011,9999999999999
так что это ответ, я думаю.
Других решений пока нет …