当我调用Math.ceil(5.2)return 是double 6.0. 我的自然倾向是认为这Math.ceil(double a)会返回一个long. 从文档中:
ceil(double a)
double返回不小于参数且等于数学整数的最小(最接近负无穷大)值。
但是为什么当结果是整数时返回 adouble而不是 a呢?long我认为理解它背后的原因可能有助于我更好地理解 Java。它还可以帮助我弄清楚我是否会通过转换为 a 给自己带来麻烦long,例如是
long b = (long)Math.ceil(a);
总是我认为它应该是什么?我担心可能存在一些有问题的边界情况。