0

Java の剰余演算子に問題があります: 理由:

(int)2147483648l % 10

負の数 (-8) を返しますか?

4

6 に答える 6

13

(int) 2147483648lですので-2147483648。to をキャストしていますがlongint範囲外です。

于 2013-05-15T06:32:24.587 に答える
0

longを に変換しているため、負の数が得られますint。あなたの場合に考えられる回避策は、10 進数の x mod 10 が単に小数点以下の桁数 (1 桁) であるという事実を利用することです。たとえば、156 を 10 で割ると 15 + (6/10) になるため、156 mod 10 は 6 になります。だから、あなたはこのようなことをすることができます

//get the number and make it a string
String numberAsString = String.valueOf(number);

//get the integer value of the last character in the string (basically the lowest place)
int mod10 = Integer.parseInt(numberAsString.charAt(numberAsString.length() - 1));

numberこれは、あなたが望む限り、任意の整数に対して機能しますnumber % 10

于 2013-05-15T06:49:04.117 に答える