牛客网的一道题目,很有意思,非常容易错。
本以为是
但是最终结果是:
Ceil d1=-0.0
floor d1=-1.0
我们查看一下Math.cell(double a)方法源码:
关键部分注释:
返回大于或相等于参数的最小(最接近负无穷大)并相等于一个整数的double值。特殊情况:
如果参数值已经等于某个整数,那么结果是一样的参数。
如果参数是NaN或无穷大或正零或负零,那么结果是一样的参数。
如果参数值小于零,但是大于-1.0,那么结果是负零。
因此第一个结果是-0.0
再看看Math.floor(double a)的源码
返回小于或等于参数最大的(最接近正无穷大)一个整数double值。特殊情况:
如果参数值已经等于某个整数,那么结果是一样的参数。
如果参数是NaN或无穷大或正零或负零,那么结果是一样的参数。
针对 小于0.0和大于-1.0的情况没有特殊说明。
因此第二个是 -1.0 。
閱讀更多 明明如月學長 的文章