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

From: Roedy Green (look-on_at_mindprod.com.invalid)
Date: 06/01/04


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

On Tue, 01 Jun 2004 09:41:47 +0100, Yu SONG <tips@mi6.gov.uk> wrote or
quoted :

>The rules are here:
>http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363

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 http://mindprod.com/jgloss/truncation.html

-- 
Canadian Mind Products, Roedy Green.
Coaching, problem solving, economical contract programming. 
See http://mindprod.com/jgloss/jgloss.html for The Java Glossary.


Relevant Pages

  • Re: Rounding errors
    ... It maintains the average of the infinite precision original ... With enough digits the average is close enough to ... Rounding maintains this with an average of 0.500. ... >It only 'pushes it upwards' with respect to how much truncation ...
    (comp.lang.cobol)
  • Re: Rounding errors
    ... Rounding maintains this with an average of 0.500. ... It only 'pushes it upwards' with respect to how much truncation ... You continue to say 'rounding error' when applied to an average. ... If the set of infinite precision reals adds up to the same as the set ...
    (comp.lang.cobol)
  • Re: Math failure?? (Rick failure??) with optimizations enabled
    ... This is often called "truncation toward zero". ... I bet you meant to say it's called "rounding toward zero":) ... where rounding is irrelevant with greater ambiguity, ...
    (comp.lang.c)
  • Re: Rounding errors
    ... digits then the average is _NOT_ 0.500. ... Rounding of the original set of long numbers, ... When you round the numbers to two digits what existed beyond the 3rd ... so the truncation doesn't matter. ...
    (comp.lang.cobol)
  • Re: Rounding errors
    ... How does the rounding operation know what truncation came ... I am suggesting that you may get a different expectation 'with ... > by FACTS, ...
    (comp.lang.cobol)