<p>According to <a href="http://en.wikipedia.org/wiki/Rounding" rel="noreferrer">Wikipedia</a> when rounding a negative number, you round the absolute number. So by that reasoning, -3.5 would be rounded to -4. But when I use java.lang.Math.round(-3.5) returns -3. Can someone please explain this?</p>

According to the
javadoc
Returns the closest long to the
  argument. The result is rounded to an
  integer by adding 1/2, taking the
  floor of the result, and casting the
  result to type long. In other words,
  the result is equal to the value of
  the expression:
```
(long)Math.floor(a + 0.5d)
```
Conceptually, you round
up
. In other words, to the next integer
greater
than the value and -3 is greater than -3.5, while -4 is less.