哪条代码能确定 int 值 foo 最接近 double 值 bar?( )
int foo = (int) Math.min(bar);
int foo = (int) Math.ceil(bar);
int foo = (int) Math.floor(bar);
int foo = (int) Math.round(bar);
java.lang.Math.ceil(double a) 返回大于或等于参数且等于数学整数的最小(最接近负无穷大)双精度值。 特别案例
如果参数值已经等于数学整数,则结果与参数相同。
如果参数是 NaN 或无穷大或正零或负零,则结果与参数相同。
如果参数值小于零但大于-1.0,则结果为负零。
请注意,Math.ceil(x) 的值正是 -Math.floor(-x) 的值。
java.lang.Math.floor(double a) 返回小于或等于参数且等于数学整数的最大(最接近正无穷大)双精度值。 特别案例:
如果参数值已经等于一个数学整数,则结果与参数相同。
如果参数是 NaN 或无穷大或正零或负零,则结果与参数相同。
java.lang.Math.round(double a) 返回最接近参数的 long。 通过加 1/2、取结果的下限并将结果转换为 long 类型,将结果四舍五入为整数。 特别案例
如果参数为 NaN,则结果为 0。
如果参数为负无穷大或任何小于或等于 Long.MIN_VALUE 的值,则结果等于 Long.MIN_VALUE 的值。
如果参数为正无穷大或任何大于或等于 Long.MAX_VALUE 的值,则结果等于 Long.MAX_VALUE 的值。
如果参数值已经等于数学整数,则结果与参数相同。
如果参数是 NaN 或无穷大或正零或负零,则结果与参数相同。
如果参数值小于零但大于-1.0,则结果为负零。
请注意,Math.ceil(x) 的值正是 -Math.floor(-x) 的值。
java.lang.Math.floor(double a) 返回小于或等于参数且等于数学整数的最大(最接近正无穷大)双精度值。 特别案例:
如果参数值已经等于一个数学整数,则结果与参数相同。
如果参数是 NaN 或无穷大或正零或负零,则结果与参数相同。
java.lang.Math.round(double a) 返回最接近参数的 long。 通过加 1/2、取结果的下限并将结果转换为 long 类型,将结果四舍五入为整数。 特别案例
如果参数为 NaN,则结果为 0。
如果参数为负无穷大或任何小于或等于 Long.MIN_VALUE 的值,则结果等于 Long.MIN_VALUE 的值。
如果参数为正无穷大或任何大于或等于 Long.MAX_VALUE 的值,则结果等于 Long.MAX_VALUE 的值。