java - Java中Long对象和基本类型long有什么区别?

标签 java long-integer

我认为 long 和 Long class 或多或少是同一件事。 我看到了这个link

当我显示Long.MAX_VALUE时它显示9223372036854775807 。 但是当我做 1000000*1000000 的乘法时这是 10^12 ;它溢出了。

我使用长数据类型来存储值...并且在调试时它具有值 -727379968相乘后

我在哪里犯了错误或者我完全愚蠢?


更新:这是我的代码,我得到了答案中指定的错误。
 
 for (;;)
    ppltn[i] = Integer.parseInt(tk.nextToken());

for (int i = 0; i < noc; i++) //sum is of long type sum = sum + min * ppltn[i]; //min and ppltn are of integer type

最佳答案

表达式

1000000 * 1000000;

是整数乘法,因为两个操作数都是整数。因此,您受到整数最大值的限制。

你需要进行长乘法

1000000L * 1000000 /* L if you want it*/;

其中至少一个操作数是long,而另一个则提升为long(如果还没有)。

关于java - Java中Long对象和基本类型long有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22110964/

相关文章:

c++ - 无符号长按位运算符?

Java,将两个整数组合成长结果负数

c - 如何将一个 long long 整数拆分为 3 个字符集?

java - 使用 Java 驱动程序在 MongoDB 中进行高级逻辑运算

java - 接口(interface)的转换和实例或者几乎是空的接口(interface)?

java - 将 XML 文件中的值获取到数组中

java - 如何在Java中实现特定的数学公式?

java - 多节点集群上的 hazelcast 条目监听器

python - python 3中long int除法的区别

java - 将 byte[] 数组转换为 unsigned Long java