2
我試圖分離出長整數的數字,以便它可以表示爲整數數組 Java中的長整型轉換給出不正確的結果
12345......888 as [1,2,3,4,......8,8,8]
在通常的方式,我取N%10取出最後一位數字和n/10的人數減少,即
public static void main(String[] args) {
long temp = 111111111111111110L;
while(temp>0){
System.out.println("----------");
System.out.println(temp%10);
System.out.println((int)temp%10);
temp=temp/10;
}
}
TEMP%10給出正確的結果。但它不能直接添加到int列表中。如果我嘗試鍵入強制轉換,則在前幾次迭代中會得到不正確的結果。 輸出
----------
0
-2
----------
1
9
----------
1
-5
----------
1
1
----------
1
9
----------
1
-3
----------
1
-5
----------
1
-7
----------
1
1
----------
1
1
----------
1
1
----------
1
1
----------
1
1
----------
1
1
----------
1
1
----------
1
1
----------
1
1
----------
1
1
我使用的解決辦法是
int digitArray[] = new int[somenumber];
String s = Long.toString(n);
for(int i=0;i<s.length();i++){
digitArray[i]=Integer.parseInt(""+s.charAt(i));
}
但我很好奇,爲什麼類型轉換並不在第一種方式工作時數爲型鑄造是個位數,即井內的長距離。
感謝。我很愚蠢!這樣愚蠢的事情;我爲自己感到羞恥,我在第一時間犯了這個錯誤,而且我甚至無法弄清楚。 –