Re: Blow me away, (long) does not truncate.

From: Roedy Green (
Date: 06/01/04

Date: Tue, 01 Jun 2004 16:38:56 GMT

On Tue, 01 Jun 2004 09:41:47 +0100, Yu SONG <> wrote or
quoted :

>The rules are here:

The rules are ambiguous.

They say they "round toward 0" which could mean ether truncation
toward 0 or rounding toward 0.

In their example they say:

System.out.print("cast to int rounds toward 0: ");
d = 12345.6;
System.out.println((int)d + " " + (int)(-d));

produces the output:

cast to int rounds toward 0: 12345 -12345

I ran the test and it indeed truncates.

Which suggests they mean truncation.

Yet the example I ran shows it sometime does rounding.

The mystery is explained at

Canadian Mind Products, Roedy Green.
Coaching, problem solving, economical contract programming. 
See for The Java Glossary.