Javaで2つの長い値のモジュロ(%)を見つけるにはどうすればよいですか?私のコードは「整数が大きすぎます」と言った後、変更しようとしている数値が続きます。長くキャストしてみましたが、うまくいきませんでした。それをBigIntegerに変換し、剰余メソッドを使用する必要がありますか?ありがとう。
%
演算子は長い間機能します。 123456789L
のように、数値リテラルの最後にL
を付けるのを忘れたようです。あなたのコードを見ることができますか?
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
}
}
大文字OR小文字のLを使用できますが、小文字は数字の1と非常によく似ているため、大文字を使用することをお勧めします。
%と同様に機能するremainder()メソッドを持つBigIntegerクラスを操作してみることもできます。