Почему логическое выражение $a больше либо равно $b — ложно,если обе переменные равны?

Добрый вечер, я наверно че то не понимаю помогите разобраться. есть пример кода на php
$i = (float)4;
$j = (float)4;
var_dump(((float)4 <= (float)4));
var_dump($i);
var_dump($j);
var_dump(($i <= $j));

вывод следующий
//bool(true)
//float(4)
//float(4)
//bool(true)

все как надо все как положено var_dump(($i <= $j)); возвращает истину
но если я делаю следующий код в цикеле в любом что for что while все ломается
$i=0.6;
while ($i<=4.0){
 $i+=0.1;
}
$j = (float)4;
var_dump($i);
var_dump($j);
var_dump(($i <= $j));

вывод такой
//float(4)
//float(4)
//bool(false)

то-есть выражение var_dump(($i <= $j)); возвращает ложь, следовательно у меня цикл доходит только до 3,9
  • Вопрос задан
  • 159 просмотров
Решения вопроса 1
@aleksejjjj
Проблема во внутреннем компьютерном представлении чисел с плавающей точкой. Обратите внимание на пункт Внимание в документации.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 90 000 до 140 000 руб.
Babyblog.ru Москва
от 50 000 до 80 000 руб.
Aitarget Москва
от 100 000 руб.
19 апр. 2019, в 15:18
1500 руб./за проект
19 апр. 2019, в 14:59
3000 руб./за проект
19 апр. 2019, в 14:29
10000 руб./за проект