@therealvetalhidden

Проблема при сравнение переменных в php?

Столкнулся недавно с проблемой при сравнение, вот код:
$a1 = '1.21';
	$a2 = '1.1' * '1.1';
	var_dump($a1);
	var_dump($a2);
	var_dump($a1 == $a2);
	
	$b1 = '1.21';
	$b2 = 1.21;
	var_dump($b1);
	var_dump($b2);
	var_dump('1.21' == 1.21);

В первом варианте выведет string(4) "1.21" float(1.21) bool(false)
Во втором варианте выведет string(4) "1.21" float(1.21) bool(true)

Кто знает почему так получается?
  • Вопрос задан
  • 2368 просмотров
Решения вопроса 2
DevMan
@DevMan
Because of the way floats are represented internally, you should not test two floats for equality.

Если хотите еще поудивляться, посмотрите на результат
echo floor((0.1+0.4)*10) и echo floor((0.1+0.7)*10)
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы