@EvgMul

Почему float переменные не равны?

Здравствуйте. Вопрос простой и смешной наверное, но я не понимаю происходящего.
5df8a44bbea4f820287616.png
Почему сравнение этих чисел даёт false?

Заранее благодарен всем отозвавшимся.
  • Вопрос задан
  • 364 просмотра
Решения вопроса 2
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Они и не могут быть равны по дизайну.
Используйте функции для сравнения именно чисел с плавающей точкой

https://www.php.net/manual/en/language.types.float.php
Ответ написан
Комментировать
@MaxBog
Используйте специальные функцию bccomp
Все потому что в памяти вещественны числа имеют приближенной значение. Такая проблема есть и в javascript
Так что лучше используйте это https://www.php.net/manual/ru/ref.bc.php для работы с вещественными числами.

Вот пример, который на собеседовании могут использовать
$a = 0.1 + 0.1;
$b = 0.3 - 0.1;
var_dump([$a, $b]); // float(0.2) float(0.2)
var_dump($a === $b); // false
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
02 мая 2024, в 23:56
2000 руб./за проект
02 мая 2024, в 23:29
1500 руб./в час
02 мая 2024, в 23:16
7500 руб./за проект