2015-02-06 21 views
0

NSNumber *idValue =[NSNumber numberWithLong:[result longLongValue]];如何轉換的NSNumber目標C到Java龍

上述結果值是 「2174767089」,idValue是 「-2120200207」。它得到了轉換。

搞錯我送這個的NSNumber到我的服務器。

在服務器(Java Servlet的)接受參數是龍。在Java服務中,我得到了「-2120200207」。想要將其轉換回「2174767089」。這怎麼可能?

回答

0

我認爲你可以使用BigInteger的類型,但你需要改變與大整數型數據庫(如果您正在使用的數據庫)。

0

您似乎想要構造一個NSNumberlongLongValue,但您調用的構造函數是longValue

NSNumber *idValue =[NSNumber numberWithLongLong:[result longLongValue]]; 
if ([idValue longLongValue] == [result longLongValue]) { 
    NSLog(@"Of course it does."); 
} 

順便提及,一個Java Long是相同的長度一個Objective-C long long:64位。 Objective-C longint的化名。

+0

我發現,在java中..... 長idValue = 2174767089L; int intVal =(int)(idValue); System.out.println(「idValue =」+ intVal); //打印「-2120200207」。如何從java中返回「2174767089」int? – Femina 2015-02-07 05:19:55

+0

我不確定我明白你在問什麼。在Java中,'long'和'int'不是相同的數據類型。 Java中int的最大值是'2147483648'。如果你需要存儲一個比這更大的值,你必須*使用'long'來這麼做。 – 2015-02-09 12:46:24

+0

是啊!我明白了,並解決了問題。謝謝 – Femina 2015-02-09 14:21:02