我有两个整数值,我想在java中将这两个值的差异作为long返回。
有可能吗?
答案 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负责根据需要进行包装/展开