Показать сообщение отдельно
Миша NIF
the style of no style
Аватар для Миша NIF
Сообщения: 18,108
Регистрация: 23.09.2006
Откуда: ГЕРМАНИЯ
Старый пост, нажмите что бы добавить к себе блог 12 декабря 2011, 22:02
ВКонтакте Отправить сообщение через twitter для Миша NIF
  #1743 (ПС)
-Цитата от иксуй! Посмотреть сообщение
В джаве вообще ололо:

Показать скрытый текст

Так оба условных оператора дают false:
Код:
   
                double xL = 1.1 * 3;         
        	double yL = 3.3;
        	float xF = (float)1.1 * 3; 
        	float yF = (float)3.3;
        	
        	if(xL == yL)
        	{
        		out.println(xL + " " + yL);
        	}
   
        	if(xF == yF)
        	{
        		out.println(xF + " " + yF);
        	}
А так первый true.
Код:
  
                double xL = 1.1 * 3;         
        	double yL = 3.3;
        	float xF = (float)1.1 * 3; 
        	float yF = (float)3.3;
        	
        	if((float)xL == (float)yL)
        	{
        		out.println(xL + " " + yL);
        	}
   
        	if(xF == yF)
        	{
        		out.println(xF + " " + yF);
        	}


Добавлено через 5 минут 29 секунд
Что доказывает что всегда нужно использовать поправку, и сравнивать типы с плавающей точкой оценкой
Код:
if ( abs(x - y) < eps ) printf("x equals y")
в пхп достаточно дать обоим вешам тип стринг....и усё ок но пхп это конечно совсем другое с типами...там всё не так строго

offline
Ответить с цитированием