如何在Java中找到两个长整型值的模(%)?我的代码显示'Integer number too large‘,后面跟着我想要修改的数字。我试着把它转换成长的,但它不起作用。是否必须将其转换为BigInteger并使用余数方法?谢谢。
发布于 2011-04-21 07:04:17
%运算符确实适用于longs。听起来您可能忘记了在数字文字的末尾粘贴L,就像在123456789L中一样。我们能看看你的代码吗?
发布于 2011-04-21 07:08:54
最多只能有2 147 483 647的整数。如果你想要比它更大,比如说30亿,你必须指定它是一个长的
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-21 07:11:23
您还可以尝试使用BigInteger类,它有一个类似于%的remainder()方法。
https://stackoverflow.com/questions/5737616
复制相似问题