Сравнение двух чисел типа long

Ответить
Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Сравнение двух чисел типа long

Сообщение neoksi » 13 дек 2012, 23:17

Ребят подскажите как правильно сравнивать числа типа long, чтоб можно было этим сравнением оперировать в операторах if.

Код: Выделить всё

long a = 5;
long b=10;
if(b>a){
  a=b;
}
Как правильно записать вот такой код для long чисел, сейчас для сравнения приходится преобразовывать числа в тип int, но это велосипед.

П.С. с типами в Java до сих пор мучаюсь. Буду благодарен за разъяснения.

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Сравнение двух чисел типа long

Сообщение neoksi » 13 дек 2012, 23:44

Что-то вообще понять не могу, в одно месте корректного сравнения смог добиться только через преобразование в int, сейчас протестировал и успешно long сравнились, по коду long и Long не путаю...
Может можно как-то записать сравнение, чтоб если один из лонгов пришел как объект, то на результат сравнения это бы не повлияло?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Сравнение двух чисел типа long

Сообщение KamiSempai » 14 дек 2012, 02:21

neoksi писал(а):Что-то вообще понять не могу, в одно месте корректного сравнения смог добиться только через преобразование в int, сейчас протестировал и успешно long сравнились, по коду long и Long не путаю...
Может можно как-то записать сравнение, чтоб если один из лонгов пришел как объект, то на результат сравнения это бы не повлияло?
Если один из лонгов придет как объект на сравнение это не повлияет, сработает автоматическое приведение. Может сравниваются два объекта?
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Сравнение двух чисел типа long

Сообщение neoksi » 14 дек 2012, 03:09

KamiSempai писал(а):Если один из лонгов придет как объект на сравнение это не повлияет, сработает автоматическое приведение. Может сравниваются два объекта?
Такая ситуация у меня возникает только в одном месте.
1) Получаю два long из разных источников;
2) Пропускаю оба long через метод, который как результат возвращает long число;
3) Получившиеся long'и пытаюсь сравнить и получаю как результат false.

Но если я делаю с long'ами следующий маневр

Код: Выделить всё

long longN1= MyFunc.ConvertTStoDateTS(MyFunc.getTSNowLong());
long longN2= MyFunc.ConvertTStoDateTS(myCalendar.returnUnixTSById(i));	

int numC = Long.valueOf(longN1).intValue();
int numS = Long.valueOf(longN2).intValue();
	        
	        if(numC>numS){
	        	longN2=longN1;
	        	numC=numS;
	        }
При этом аналогичная конструкция в другой части программы работает нормально, без перевода в int.

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Сравнение двух чисел типа long

Сообщение neoksi » 14 дек 2012, 08:18

Само ушло. Видимо где-то в логике был допущен просчет, как раз перебирал логику запросов и все стало нормально работать.

Ответить