Java parseInt vs parseLong

时间:2014-07-05 21:29:58

标签: java integer long-integer

String a = "576055795"; 

long b = 10*Integer.parseInt(a);

long c = 10*Long.parseLong(a);

System.out.println(b); //Prints 1465590654 
System.out.println(c); // Prints 5760557950

为什么他们不同?

1 个答案:

答案 0 :(得分:12)

Integer.parseInt()返回int,这是一个带符号的32位整数。 10也是int;将576055795乘以10作为整数溢出并生成int,然后将其提升为long

Long.parseLong()返回long,这是一个带符号的64位整数。将它乘以10得到一个长的没有溢出。