Pen*_*One 73 java double ceil long-integer
当我打电话Math.ceil(5.2)给退货的时候double 6.0.我的自然倾向是认为Math.ceil(double a)会回归long.从文档:
ceil(double a)返回
double不小于参数且等于数学整数的最小(最接近负无穷大)值.
但是为什么当结果是整数时返回a double而不是a long?我认为理解它背后的原因可能会帮助我更好地理解Java.它也可以帮助我弄清楚我是否会因为施放到自己而陷入困境long,例如是
long b = (long)Math.ceil(a);
总是我认为它应该是什么?我担心可能会出现一些有问题的边界情况.
Jon*_*eet 68
范围double大于long.例如:
double x = Long.MAX_VALUE;
x = x * 1000;
x = Math.ceil(x);
Run Code Online (Sandbox Code Playgroud)
如果Math.ceil返回,你会期望最后一行做long什么?
请注意,在非常大的值(正数或负数)下,数字最终会非常稀疏地分布 - 因此,如果您看到我的意思,那么下一个大于整数的整数x将不会出现x + 1.
| 归档时间: |
|
| 查看次数: |
17499 次 |
| 最近记录: |