Java - 误解 ceil 和 floor 方法

Java - Misunderstand ceil and floor methods

楼层:

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. ...

上限:

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. ...

来源:Docs Oracle

关于 floor:如果我输入 System.out.print(Math.floor(2.1)); returns 2.0 。其他示例:System.out.print(Math.floor(2.8)); returns 2.0 。我将用这个例子来论证这个描述:如果 floor(2.1) 是最大的(最接近正无穷大),那么结果将是 3.0 而不是 2.0,因为 2.0 是我认为最接近负无穷大。因此,如果我更改有关楼层的描述:

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. ...

对我来说很有意义,我会理解floor(2.1) returns 2.0

当我阅读 "closest to positive infinity" 和 "closest to negative infinity" 时,我认为在数字行中:

来源:Quora

编辑:我要问的是:描述打破了我的想法。我的逻辑是(例如 floor):首先,好的,当我听 floor 时,我认为最小的不是最大的。第二,如果我returns最大,就是大于不小于到参数。 ceil

也是如此

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

关键在小于或等于参数的短语中。

所以 2.0 是最大的双精度值 小于或等于 2.1 也等于整数值。

ceil 同上:描述中提到了大于或等于输入值的最小值...

所以,原来的描述其实是正确的。