【发布时间】:2019-02-24 07:43:18
【问题描述】:
楼层:
返回小于或等于参数且等于数学整数的最大(最接近正无穷大)双精度值。 ...
细胞:
返回大于或等于参数且等于数学整数的最小(最接近负无穷大)双精度值。 ...
来源:Docs Oracle
关于地板:如果我输入 System.out.print(Math.floor(2.1)); 返回 2.0 。其他示例:System.out.print(Math.floor(2.8)); 返回 2.0。我将用这个例子来论证这个描述:如果floor(2.1) 是最大的(最接近正无穷大),那么结果将是3.0 而不是2.0,因为我认为2.0 最接近负无穷大。所以如果我改变关于地板的描述:
返回小于或等于参数且等于数学整数的最小(最接近负无穷大)双精度值。 ...
这对我来说很有意义,我会理解 floor(2.1) 返回 2.0
当我读到“最接近正无穷大”和“最接近负无穷大”时,我想在数轴上:
来源:Quora
编辑:我要问的是:描述打破了我的想法。我的逻辑是(例如关于 floor):首先,好的,当我听 floor 时,我认为是最小的而不是最大的。其次,如果我返回最大的,那就是大于不小于参数。 ceil
也是如此【问题讨论】:
-
您有问题吗?
-
有了你对
floor()的“新的和改进的”描述,为什么floor(2.1)会返回2.0?毕竟,1.0、0.0、-1.0、... 都更接近于负无穷,并且都小于2.0。 -
根据您的新定义,
floor始终返回尽可能小的double。 -
重新编辑:如果您认为
floor()和ceil()的当前描述描述了constrained optimization 问题(特别是integer programming 问题),则它们非常有意义。例如,floor(a)解决了最大化 f(x) = x 的约束优化问题,其约束条件是 x 是整数且 x
标签: java math theory floor ceil