Machine-translated by Google. Questions are authored in English.
Top

Discussion

The program is run with java -ea Sketch107 - what will be the output?

public class Sketch107
{
    public static void main(String[] args)
    {
        assert Math.round(-2.5) == -3;
        System.out.println(Math.round(-2.5));
    }
}

  • A.Compilation fails.
  • B.The program prints -3
  • C.An AssertionError is thrown, because the result is -2.
  • D.The program prints -2

Answer: C

Math.round adds one half and takes the floor, so a value exactly halfway rounds towards positive infinity. Rounding -2.5 therefore gives -2, not -3, and the assertion fails. Positive halves behave as expected, which is what makes the negative case surprising.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.