Misconceptions about the ceil and floor methods
Floor:
Returns the largest (closest to positive infinity) double value that is less than or equal to the argument and is equal to a mathematical integer. …
Ceiling:
Returns the smallest (closest to negative infinity) double value that is greater than or equal to the argument and is equal to a mathematical integer. …
Source: Docs Oracle
About floor: if I type System.out.print(Math.floor(2.1));
Returns 2.0
. Other examples: System.out.print(Math.floor(2.8));
Returns 2.0
. I will use this example to demonstrate this description: if floor(2.1)
is the largest (closest to positive infinity), then the result will be 3.0 instead of 2.0, because I think 2.0
is closest to negative infinity.
So if I change the description about the floor:
Returns the smallest (closest to negative infinity) double value that is less than or equal to the argument and is equal to a mathematical integer. …
This makes sense to me, I would understand that floor(2.1)
returns 2.0
When I read “closest to positive infinity”
and “closest to negative infinity”, I thought on the number line:
Source: Quora
EDIT: What I’m asking: The description breaks my mind. My logic is (e.g. about floor): First, okay, when I listen to floor, I think it’s the smallest rather than the largest. Second, if I return the largest, i.e. greater than not less than the parameter. ceil
The same goes for it
Solution
Returns the largest (closest to positive infinity) double value that is less than or equal to the argument and is equal to a mathematical integer
The point is that the phrase is less than or equal to the parameter.
So 2.0 is the maximum double value less than or equal to 2.1, which is also equal to an integer value.
The same goes for ceil: the minimum value greater than or equal to the input value is mentioned in the description….
Therefore, the original description is actually correct.