1

根据我找到的所有参考资料,Java 中的 long 类型范围从 -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807。我在下面写了以下代码,

public static void main(String[] args){
    long x = 12 * 24 * 60 * 1000 * 1000; 
    long y = 12 * 60 * 1000 * 1000;
    System.out.print(x / y); 
}

预期结果为 24;但是输出为0。

4

2 回答 2

3

在您的代码中, 12 * 24 * 60 * 1000 * 1000被评估为整数。然后你将它分配给long。

尝试

long x = 12L * 24 * 60 * 1000 * 1000; 
    long y = 12L * 60 * 1000 * 1000;
    System.out.print(x / y); 
}
于 2012-11-02T18:47:44.170 回答
3

你的文字是int的......

这给出了 x = 100130816 而不是 17280000000

干得好:

public static void main(String[] args) {
        long x = 12L * 24L * 60L * 1000L * 1000L;
        long y = 12L * 60L * 1000L * 1000L;
        System.out.print(x + " " + y + " " + x / y);

}

结果是 24

PS我第一次解决了这个问题,但是您删除了问题...

于 2012-11-02T18:50:15.547 回答