600851475143 の「整数が大きすぎます」エラーのトラブルシューティング
次のコード スニペットを検討してください。
public class Three { public static void main(String[] args) { Three obj = new Three(); obj.function(600851475143); } private Long function(long i) { Stack<Long> stack = new Stack<>(); for (long j = 2; j <= i; j++) { if (i % j == 0) { stack.push(j); } } return stack.pop(); } }
このコードが関数に渡されたリテラル 600851475143 を使用して実行されると、「整数が大きすぎます」エラーがスローされます。その理由を理解するには、関連するデータ型を詳しく調べる必要があります。
Java には、オブジェクトなしで数値を表す int やlong などのプリミティブ データ型があります。
ここでの問題は、600851475143 が int で表現できる最大値を超えていることです。これを修正するには、番号 600851475143L に「L」接尾辞を追加して、long 型のリテラルを使用する必要があります。
obj.function(600851475143L);
この変更により、コードはエラーが発生することなく実行され、返されます。 600851475143L の最大の素因数。
以上が600851475143 を使用すると、Java コードで「整数が大きすぎます」エラーがスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。