Почему логическое выражение $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
Проблема во внутреннем компьютерном представлении чисел с плавающей точкой. Обратите внимание на пункт Внимание в документации.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Интерно Ростов-на-Дону
от 35 000 до 50 000 руб.
Ticketland.ru Москва
от 120 000 руб.
от 70 000 до 110 000 руб.