Почему существует разница между выводом двух похожих php-кода

Код PHP 1

<?php 
 $a = 0.03;
 $b = 0.01 + 0.02;
 var_dump($a == $b);
?>

Выход 1

bool(true)

Код PHP 2

<?php 
 $a = 0.3;
 $b = 0.1 + 0.2;
 var_dump($a == $b);
?>

Выход 2

bool(false)

В чем разница между двумя приведенными выше кодами, почему это приводит к двум разным выводам. Может ли кто-нибудь предоставить мне объяснение, которое я ищу. Я немного сбит с толку, глядя на это.

Заменить 0,1 и добавить 0,01 во второй код

Jaydev Vara 10.09.2018 08:05

вывод правильный, но ошибка в вашей переменной

Jaydev Vara 10.09.2018 08:05

проверьте и сравните обе переменные

Jaydev Vara 10.09.2018 08:06

Причина в том, что вы идете дальше вправо от десятичной точки, вы получаете все меньшие и меньшие числа. Точно так же 0,01 меньше 0,5 0,05 меньше 0,1, но больше 0,01. 0,004 меньше 0,01.

user9639611 10.09.2018 08:08

@GauravNarula Я полностью знаю, как работают десятичные числа. Мой вопрос о том, в чем разница между двумя выводами. По моему мнению, вывод будет bool(true) для обоих кодов.

Abdul Rahim Shaikh 10.09.2018 08:33

потому что, когда вы добавляете 0,1 + 0,4 = 0,5, которое меньше 1, означает ложь.

user9639611 10.09.2018 08:51
2
6
57
0

Другие вопросы по теме