当我打电话Math.ceil(5.2)
回是double
6.0
。我的天生的倾向是认为那Math.ceil(double a)
会返回long
。从文档中:
ceil(double a)
返回
double
不小于参数且等于数学整数的最小(最接近负无穷大)值。
但是,如果结果是整数,为什么要返回adouble
而不是a long
?我认为了解其背后的原因可能会帮助我更好地理解Java。这也可能帮助我弄清楚是否会因强制转换为而使自己陷入困境long
,例如is
long b = (long)Math.ceil(a);
我一直认为应该是什么?我担心可能会出现一些边界问题。