This question already has answers here:
“Integer number too large” error message for 600851475143

(8个答案)


在8个月前关闭。




嗨,我在理解为什么这不起作用时遇到了麻烦
if(Long.parseLong(morse) == 4545454545){
     System.out.println("2");
}

莫尔斯(Morse)只是一串数字。问题是它说Integer number太大:4545454545,但是我确定Long可以更长。

最佳答案

您需要使用4545454545l4545454545L将其限定为long。默认情况下,4545454545int文字,而4545454545不在int范围内。

建议使用大写字母L以避免混淆,因为l1看起来非常相似

你可以做 :

if(Long.valueOf(4545454545l).equals(Long.parseLong(morse)) ){
     System.out.println("2");
}

或者
if(Long.parseLong(morse) == 4545454545l){
   System.out.println("2");
}

根据JLS 3.10.1:

09-13 10:48