Авторские Материалы о событиях в Израиле на Ближнем Востоке и в мире

IsraMir.com - Израильская журналистика

Default color brown color green color red color blue color
Вы сейчас тут: Новости arrow Техотдел arrow Свет ученья arrow Сравнение объектов, часть 2-я
Skip to content
Сравнение объектов, часть 2-я - 0.0 и -0.0 Версия для печати Отправить на e-mail
Содержание
0.0 и -0.0
Значение NaN
Производящие методы...
Значение NaN 
NaN расшифровывается как Not-a-Number. Это значение появляется в результате нелегальных математических операций, скажем, деления 0.0 на 0.0, бесконечности на бесконечность и т.п.
 
Особенностью этого значения является то, что оно не равно самому себе. Т.е.:
 
float x = 0.0f/0.0f;
System.out.println("x="+x);
System.out.println("x==x: "+(x==x));
 
... даст в результате...
 
x=NaN
x==x: false
 
Чем это может обернуться при сравнении объектов? Если поле объекта будет равно NaN, то сравнение даст false, т.е. объекты гарантированно будут считаться неравными. Хотя по логике вещей мы можем хотеть как раз обратного.
 
Добиться нужного результата можно, используя метод Float.isNaN(float). Он возвращает true, если аргумент - NaN. На сравнение битовых представлений я бы в этом случае не полагался, т.к. оно не стандартизовано.
 
Пожалуй, о примитивах хватит. Перейдем теперь к тонкостям, появившимся в Java с версии 5.0. И первый момент, которого я бы хотел коснуться -
 
 

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:


Автотранслитерация: выключена

Защитный код

Powered by jComments