-7

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

可能吗?

4

7 回答 7

10

您可以将结果分配给 long:

long result = intval2 - intval1;
于 2012-10-12T12:56:09.517 回答
1
public Long difference(Integer i1, Integer i2){
   return new Long(i1-i2);
}
于 2012-10-12T13:00:09.983 回答
1

你可以做

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
于 2012-10-12T12:58:14.277 回答
0

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

return i1-i2;

需要 Java 1.5+。但没有强制转换或转换。

很难,即不可能,相信你甚至尝试过任何事情。

于 2012-10-13T12:09:16.083 回答
0
int val1=10;

int val2=6;

long val3 = (long) val1 - val2;
于 2012-10-12T12:56:44.723 回答
0

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

于 2012-10-12T12:57:15.167 回答
-1

简单,转换为 long 并减去:

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

自动装箱根据需要处理包装/展开

于 2012-10-12T12:57:21.947 回答