Java – Why does Math.floor return a double


Official Javadoc says that Math.floor() returns a double that is "equal to a mathematical integer", but then why shouldn't it return an int?

Best Answer

According to the same Javadoc:

If the argument is NaN or an infinity or positive zero or negative zero, then the result is the same as the argument. Can't do that with an int.

The largest double value is also larger than the largest int, so it would have to be a long.