我有两个整数值,我想在 java 中将这两个值的差作为 long 返回。
可能吗?
您可以将结果分配给 long:
long result = intval2 - intval1;
public Long difference(Integer i1, Integer i2){
return new Long(i1-i2);
}
你可以做
long difference = (long) i1 - i2;
如果您需要绝对差异
long difference = Math.abs((long) i1 - i2);
例如
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
显然这是火箭科学。如果 i1 和 i2 是整数或整数:
return i1-i2;
需要 Java 1.5+。但没有强制转换或转换。
很难,即不可能,相信你甚至尝试过任何事情。
int val1=10;
int val2=6;
long val3 = (long) val1 - val2;
如果您有大整数,则可以同时使用Integer.longValue()
两者并简单地减去这些值。
简单,转换为 long 并减去:
public long diff(int i1, int i2) {
return ((long) i1) - i2;
}
自动装箱根据需要处理包装/展开