java - 将长解析为负数

标签 java math numbers long-integer

代码:

public class Main{
    public static void main(String[] a){
        long t=24*1000*3600;
        System.out.println(t*25);
        System.out.println(24*1000*3600*25);
    }
}

这会打印:

2160000000

-2134967296

为什么?


感谢大家的回复。

唯一的办法是在数字后面加L吗?

我试过 (long)24*1000*3600*25 但这也是否定的。

最佳答案

您达到了 int 类型的最大值,即 Integer.MAX_VALUE 或 2^31-1。它因此包裹,因此显示负数。

有关此的即时解释,请参阅此漫画:

alt text

关于java - 将长解析为负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3957937/

相关文章:

java - 如何管理有状态的网络服务?

java - 是否可以仅将 String 传递给自定义 ListView 适配器?

Java 字符串包含无关数据

java - 如何使用java将PDF表单(用户填写并提交)数据保存到数据库中

java - 网页开发 : Cannot load an image

java - 无法从 Java 中的命令行参数将值压入堆栈

python - 在 Python 中作为函数调用时,Eratosthenes 筛法要慢得多

math - 仅使用校验和传输文件?

javascript - 使用++ 和 +1 作为参数的区别

JavaScript 数字,在内存中的大小都一样吗?