私は2つの整数値を持っていて、それら2つの値の差をJavaでlongとして返したいと思っています。
出来ますか?
結果をlongに割り当てることができます。
long result = intval2 - intval1;
あなたはただすることができます
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
public Long difference(Integer i1, Integer i2){
return new Long(i1-i2);
}
どうやらこれはロケット科学です。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;
}
オートボクシングは、必要に応じてラッピング/アンラッピングを処理します