Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 504
  • Last Modified:

Compare long

Hi!

seems like I can't do:

long a= 9876543435351;
long b =1232134343344;

if (a > b) {
 // do something
}

found that I had to use compareTo for long, but how?

regards
0
mamruoc
Asked:
mamruoc
  • 10
  • 8
  • 6
  • +2
1 Solution
 
CEHJCommented:
No - you have to use compareTo for Long, not long

if (a.longValue() > b.longValue()) {
}
0
 
CEHJCommented:
(Where 'a' is defined as Long). The alternative is

if (a.compareTo(b) > 0) {
}
0
 
CEHJCommented:
... and if they *are* defined as long, then your posted code will work
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
mamruocAuthor Commented:
Error                  Cannot invoke longValue() on the primitive type long

hm....
0
 
sciuriwareCommented:
a > b is correct for all simple number-carrying variables
compareTo( ) and equals( ) are for reference variables, when comparing (part of) the object's contents.
;JOOP!
0
 
mamruocAuthor Commented:
I'm doing:

long time = 0 ;
Date dateObject = new Date(); /* Create dateobject to be able to use linux timestamp */

if((dateObject.getTime() < time)) {

}
0
 
zzynxSoftware engineerCommented:
>>seems like I can't do:

>>long a= 9876543435351;
>>long b =1232134343344;

Right, you can't since both values are too large to fit in a long


0
 
zzynxSoftware engineerCommented:
>>I 'm doing:

>>long time = 0 ;
>>Date dateObject = new Date(); /* Create dateobject to be able to use linux timestamp */

>>if((dateObject.getTime() < time)) {

>>}

That's OK. But I think you mean

if((dateObject.getTime() > time))
0
 
mamruocAuthor Commented:
I'm doing:

long time = 0 ;
Date dateObject = new Date(); /* Create dateobject to be able to use linux timestamp */

if((dateObject.getTime() < time)) {

}

I'm trying to make a timeout function using linuxtimestamp....

time will be fill with timestamp and added, let's say 2000, for 2 sec timeout....
0
 
sciuriwareCommented:
zzynx, you are confusing int and long: long can contain as much as 2^63
;JOOP!
0
 
CEHJCommented:
>>I'm doing:

That's fine

0
 
CEHJCommented:
Please post the code that's failing
0
 
zzynxSoftware engineerCommented:
>> Error               Cannot invoke longValue() on the primitive type long
longValue() must be invoked on a Long (capital L) not on a long (small l)
0
 
zzynxSoftware engineerCommented:
>> zzynx, you are confusing int and long: long can contain as much as 2^63
Did you try to compile

>>long a= 9876543435351;
>>long b =1232134343344;

It gives me
integer number too large: 9876543435351
integer number too large: 1232134343344
0
 
CEHJCommented:
>>I'm trying to make a timeout function using linuxtimestamp....

long x = 2000L;
long start = System.currentTimeMillis();

...

long duration =  System.currentTimeMillis() - start;
if (duration > x) {
      // time out
}


0
 
zzynxSoftware engineerCommented:
I see: that should've been

long a= 9876543435351L;
long b =1232134343344L;

(remark the L at the end)
0
 
mamruocAuthor Commented:
public void run() {
      if (DEBUG) System.out.println("UDP AcceptThread accepting messages...");
          try {
            acceptSocket = new DatagramSocket(UDP_IN_PORT);
            byte[] buffer = new byte[defaultBufferLength];
            int counter=0;
            while (true) {
                  incoming = new DatagramPacket(buffer, buffer.length);
                  Date dateObject = new Date(); /* Create dateobject to be able to use linux timestamp */
                  try {
                        if(recording || !playing || acceptingNewStream) { //Save to file, if system busy playback or sending.
                              if(time == 0) { // timeout == 0 for initiate a new stream
                                                      in_baos = new ByteArrayOutputStream();
                                                      time = 1;
                                                }
                                                if((dateObject.getTime() < time) || (time == 1)) {      //time < timeout || timeout == 1
                                                      acceptSocket.receive(incoming); /* Accepts incoming udp stream */
                                                      try {
                                                            in_baos.write(incoming.getData());
                                                            if(incoming.getLength() > 0) {
                                                                  if(time == 1) {
                                                                        System.out.print("Accepting new stream");
                                                                  }
                                                                  time = (dateObject.getTime() + (timeOut*1000));
                                                                  acceptingNewStream = true;
                                                                  System.out.print(".");
                                                            }
                                                      }
                                                      catch (IOException e) {
                                                            System.out.println( "Writing to stream: " + e.getMessage());
                                                      }
                                                }
                                                else {
                                                      System.out.println("Something went wrong: ");
                                                }
                                          }
                                          else { // System not busy
                                                ///TODO: Fix playing when not recording or playback.
                                          }
                                    }
                                    catch (IOException e) {
                                          System.err.println(e);
                                    }
                              } // end while
                        }  // end try
                        catch (SocketException se) {
                              System.err.println(se);
                        }  // end catch
                  } // end run

I got a ticker thread running beside too, to timeout the whole system 'cause incoming = new DatagramPacket(buffer, buffer.length); seems to hang if there is no new incoming....
0
 
CEHJCommented:
>>long a= 9876543435351;

should be

long a= 9876543435351L;
0
 
girionisCommented:
Try:

long a = 9876543435351l;
long b = 1232134343344l;

if (a > b) {
 // do something
}

(Notice the "l" at the end of the long numbers)
0
 
zzynxSoftware engineerCommented:
Said that :°)
0
 
girionisCommented:
>>long a= 9876543435351;
>>long b =1232134343344;

>Right, you can't since both values are too large to fit in a long

Nope they are not. They can easily fit in a long.
0
 
zzynxSoftware engineerCommented:
Yes, I know.
cf. previous comment.
0
 
sciuriwareCommented:
As the title suggests, this thread is long.
0
 
zzynxSoftware engineerCommented:
Shouldn't this

        time = (dateObject.getTime() + (timeOut*1000));

be

        time = ((new Date()).getTime() + (timeOut*1000));
0
 
mamruocAuthor Commented:
Neede acutally long,

but the suggestion about timout function was just what I needed.. :D

thanks alot everybody
0
 
zzynxSoftware engineerCommented:
Oh, no longer interested. OK.
0
 
mamruocAuthor Commented:
Hi,

no hard feelings.. It's still intresting....

But CEHJ gave me a solution I needed....

:S
0
 
CEHJCommented:
8-)
0
 
zzynxSoftware engineerCommented:
>>no hard feelings
No offence meant.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 10
  • 8
  • 6
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now