如何在Java中将int值转换为long值?

时间:2012-10-12 12:54:48

标签: java

我有两个整数值,我想在java中将这两个值的差异作为long返回。

有可能吗?

7 个答案:

答案 0 :(得分:10)

您可以将结果分配给long:

long result = intval2 - intval1;

答案 1 :(得分:1)

你可以做到

long difference = (long) i1 - i2;

如果你需要绝对差异

long difference = Math.abs((long) i1 - i2);

e.g。

int i1 = 2000000000;
int i2 = -2000000000;
long difference = Math.abs((long) i1 - i2);
System.out.printf("%,d%n", difference);

打印

4,000,000,000

您可能需要转换为long的原因是为了避免溢出。两个int值之间的最大差异在最大值和最小值之间,但如果你这样做

System.out.println(Integer.MAX_VALUE - Integer.MIN_VALUE);

打印

-1

由于溢出,而使用演员你会得到

System.out.println((long) Integer.MAX_VALUE - Integer.MIN_VALUE);

打印

4294967295

答案 2 :(得分:1)

public Long difference(Integer i1, Integer i2){
   return new Long(i1-i2);
}

答案 3 :(得分:0)

int val1=10;

int val2=6;

long val3 = (long) val1 - val2;

答案 4 :(得分:0)

如果你有大整数,你可以在两者上使用Integer.longValue()并简单地减去这些值。

答案 5 :(得分:0)

显然这是火箭科学。如果i1和i2是整数或整数:

return i1-i2;

需要Java 1.5+。但没有演员或转换。

很难,即不可能,相信你甚至尝试了任何东西。

答案 6 :(得分:-1)

简单,转换为long并减去:

public long diff(int i1, int i2) {
     return ((long) i1) - i2;
}

Autoboxing负责根据需要进行包装/展开