Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / (v == v) => false / 10 сообщений из 10, страница 1 из 1
16.05.2012, 11:49:38
    #37796711
Devider
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(v == v) => false
В некоторых ЯП выражение v == v иногда дает false. В основном это вариации на тему NaN. А в java можно это как-то изобразить?
...
Рейтинг: 0 / 0
16.05.2012, 12:06:23
    #37796749
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(v == v) => false
Double.NaN ?
...
Рейтинг: 0 / 0
16.05.2012, 12:09:43
    #37796762
Devider
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(v == v) => false
Blazkowicz,
Код: java
1.
2.
		Double d = Double.NaN;
		System.out.println(d == d);


дает true.
Вот чтоы понятнее было вариант на руби:
Код: ruby
1.
2.
$ ruby -e 'first = 0.0 / 0.0; second = first; p first==second'
false
...
Рейтинг: 0 / 0
16.05.2012, 12:17:16
    #37796774
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(v == v) => false
Deviderдает true.


Похоже на багу. :)

Код: java
1.
2.
3.
4.
Double d = Double.NaN;
System.out.println(d == d);
System.out.println(d == Double.NaN);
System.out.println(Double.NaN == Double.NaN);
...
Рейтинг: 0 / 0
16.05.2012, 12:20:28
    #37796782
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(v == v) => false
А не, всё нормально. Это ловушка автобоксинга.

Код: java
1.
2.
double d = Double.NaN;
System.out.println(d == d);
...
Рейтинг: 0 / 0
16.05.2012, 12:22:38
    #37796786
Devider
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(v == v) => false
BlazkowiczDeviderдает true.


Похоже на багу. :)

Код: java
1.
2.
3.
4.
Double d = Double.NaN;
System.out.println(d == d);
System.out.println(d == Double.NaN);
System.out.println(Double.NaN == Double.NaN);


У меня вывод:
true
false
false

У Вас не так?
$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.1) (Gentoo build 1.6.0_24-b24)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
...
Рейтинг: 0 / 0
16.05.2012, 13:45:38
    #37797004
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(v == v) => false
...
Рейтинг: 0 / 0
16.05.2012, 13:53:32
    #37797024
Devider
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(v == v) => false
Блин, сам туплю и вас всех сбиваю.
$ ruby -e 'first = 0.0 / 0.0;p first==first'
false

Вот что имел ввиду.
...
Рейтинг: 0 / 0
16.05.2012, 14:02:24
    #37797055
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(v == v) => false
DeviderБлин, сам туплю и вас всех сбиваю.
$ ruby -e 'first = 0.0 / 0.0;p first==first'
false

Вот что имел ввиду.


Код: java
1.
2.
double f = 0.0 / 0.0;
System.out.println(f == f);



В чём вопрос????
...
Рейтинг: 0 / 0
16.05.2012, 16:25:51
    #37797404
Devider
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(v == v) => false
Blazkowicz
Код: java
1.
2.
double f = 0.0 / 0.0;
System.out.println(f == f);



В чём вопрос????
Все-все, больше нет вопросов. :)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / (v == v) => false / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]