@EvgMul

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

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

Заранее благодарен всем отозвавшимся.
  • Вопрос задан
  • 409 просмотров
Решения вопроса 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
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы