当我调用
Math.ceil(5.2)
时,返回的是double
类型的6.0
。我的自然倾向是认为Math.ceil(double a)
会返回一个long
类型的值。但从文档上看:
为什么返回一个
ceil(double a)
返回不小于参数的最小(接近负无穷大)
double
值,且等于某个数学整数。
double
而不是long
呢?即使结果是整数?我认为理解其背后的原因可能有助于我更好地理解Java。同时也可能有助于我弄清楚是否将其转换为long
类型会出现问题,例如:
long b = (long)Math.ceil(a);