Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Java
Expertise: Advanced
Jan 6, 2000

Java's Division and Modulus Operations

In Java you take the remainder with the modulus (%) operator, whereby the sign of the remainder follows the dividend, not the divisor. So (+5 % -2) will be, to the surprise of many, +1. Java division has the Euclidean property. When you multiply the quotient by the divisor and add the remainder, you get back to the dividend. Java's division is a truncated division. The following tabulates the matter:
 Signs   Division   Modulus 
+ +     +5/+2=+2   +5%+2=+1 
- +     -5/+2=-2   -5%+2=-1 
+ -     +5/-2=-2   +5%-2=+1 
- -     -5/-2=+2   -5%-2=-1
In general, if floored division is what you want (yielding the closest, smallest number to that number), you can write:
 (dividend >= 0) ? (dividend / divisor) : ((dividend-divisor+1) / divisor);
If you want ceiled division (yielding the closest, largest number to that number), you can write:
 (dividend >= 0) ? ((dividend+divisor-1) / divisor) : (dividend / divisor);
Note that you can also use:

public static native double floor(double a)

and

public static native double ceil(double a)

of the java.lang.Math class.

Behrouz Fallahi
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date