如何在 Java 中找到两个 long 值的模 (%)?我的代码显示“整数太大”,后跟我要修改的数字。我尝试将其投射到很长,但没有奏效。我是否必须将其转换为 BigInteger 并使用余数方法?谢谢。
问问题
35601 次
3 回答
22
%
操作员确实工作了很长时间。听起来您可能忘记L
在数字文字的末尾加上123456789L
. 我们可以看看你的代码吗?
于 2011-04-20T23:04:16.990 回答
6
您最多只能有一个整数,最大为 2 147 483 647。如果您想要更大,比如 30 亿,您必须将其指定为 long
class Descartes {
public static void main(String[] args) {
long orig = Long.MAX_VALUE;
long mod = orig % 3000000000; // ERROR 3000000000 too big
long mod = orig % 3000000000L; // no error, specified as a long with the L
}
}
请记住,您可以使用大写或小写 L,但建议使用大写,因为小写看起来与数字 1 非常相似。
于 2011-04-20T23:08:53.687 回答
0
您还可以尝试使用 BigInteger 类,该类具有与 % 类似的剩余 () 方法。
于 2011-04-20T23:11:23.080 回答