-7

私は2つの整数値を持っていて、それら2つの値の差をJavaでlongとして返したいと思っています。

出来ますか?

4

7 に答える 7

10

結果をlongに割り当てることができます。

long result = intval2 - intval1;
于 2012-10-12T12:56:09.517 に答える
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は、オーバーフローを避けるためです。2 つの 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 に答える
1
public Long difference(Integer i1, Integer i2){
   return new Long(i1-i2);
}
于 2012-10-12T13:00:09.983 に答える
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 に答える