在Java中向上舍入为double

时间:2014-07-03 13:56:38

标签: java double long-integer rounding

java中是否有一个方法在java中将double加倍为Long?

例如。 double d = 2394867326.23; 我需要将其舍入到2394867327.结果不是整数,所以我认为不能使用Math.ceil。

我们在java中有一个返回Long而不是int的方法吗?

2 个答案:

答案 0 :(得分:8)

Math.ceil根据this返回一个double,所以你应该能够在调用math.ceil(double)之后将它强制转换为long。

答案 1 :(得分:1)

你可以依赖强制转换为long的属性:

public static long d2lCeil(double d) {
    long l = (long) d;
    return d == l ? l : l + 1;
}

这种方法使用的技巧是,在施法中,任何部分都会丢失。然后通过比较长和双来检测分数的存在,如果它们不相同则必须有一个分数,因此长期需要四舍五入。