Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-误解ceil和floor方法_Java_Math_Theory_Floor_Ceil - Fatal编程技术网

Java-误解ceil和floor方法

Java-误解ceil和floor方法,java,math,theory,floor,ceil,Java,Math,Theory,Floor,Ceil,楼层: 返回小于或等于参数且等于数学整数的最大(最接近正无穷大)双倍值 ceil: 返回大于或等于参数且等于数学整数的最小(最接近负无穷大)双倍值 资料来源: 关于楼层:如果我键入系统输出打印(数学楼层(2.1))返回2.0。其他示例:System.out.print(数学地板(2.8))返回2.0。我将用这个例子来论证这个描述:如果floor(2.1)是最大的(最接近正无穷大),那么结果将是3.0而不是2.0,因为我认为2.0最接近负无穷大。因此,如果我更改有关楼层的描述: 返回小于或等于参数

楼层:

返回小于或等于参数且等于数学整数的最大(最接近正无穷大)双倍值

ceil:

返回大于或等于参数且等于数学整数的最小(最接近负无穷大)双倍值

资料来源:

关于楼层:如果我键入
系统输出打印(数学楼层(2.1))返回
2.0
。其他示例:
System.out.print(数学地板(2.8))返回
2.0
。我将用这个例子来论证这个描述:如果
floor(2.1)
是最大的(最接近正无穷大),那么结果将是
3.0
而不是
2.0
,因为我认为
2.0
最接近负无穷大。因此,如果我更改有关楼层的描述:

返回小于或等于参数且等于数学整数的最小(最接近负无穷大)双倍值

这对我来说很有意义,我理解
floor(2.1)
返回
2.0

当我读到“最接近正无穷大”和“最接近负无穷大”时,我在数字行中思考:

资料来源:

编辑:我想问的是:这个描述让我心碎。我的逻辑是(例如,关于地板):首先,好的,当我听地板时,我认为是最小的,而不是最大的。第二,如果我返回最大的值,那就不小于参数。ceil的情况也一样

返回小于或等于参数且等于数学整数的最大(最接近正无穷大)双倍值

关键是短语小于或等于参数

因此,2.0是最大的双精度值,它小于或等于也等于整数值的2.1

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


因此,原来的描述事实上是正确的。

您有问题吗?对于您对
floor()
的“新的和改进的”描述,为什么
floor(2.1)
会返回
2.0
?毕竟,
1.0
0.0
-1.0
。。。都接近负无穷大,都小于
2.0
。在您的新定义下,
floor
总是返回尽可能小的
double
。重新编辑:如果您认为
floor()
ceil()
的当前描述是描述问题的,那么它们就非常有意义(特别是问题)。例如,
floor(a)
解决了最大化f(x)=x的约束优化问题,但约束条件是x是整数,x我理解该短语中的关键。但是如果描述会说:“返回最小(最接近负无穷大)的双倍值”,我会理解整个描述,因为:
floor(2.8)
返回
2.0
@Jason只是在这里吹毛求疵,但“最大”表示最大的数量。这对正数没关系,但对于负数,它将返回负无穷大。我认为说“最大”而不是“最大”更清楚.YMMV。我想这就是为什么他们用
最大值(最接近正无穷大)
来澄清。啊,我想我理解了这个描述。我试图理解:一边是“最大值”,另一边是“小于或等于参数”我将在ELI5中对此进行解释,因此在示例中:
floor(2.8)
就像是说:“ehh最大值是2.8,所以在2.8到以下的范围内找到最大值。”