2011-03-18 9 views
27

मेरे पास एक मान 100023 है और मैंने इसे NSString में लिया है।मैं एनएसएसटींग को लंबे मूल्य में कैसे परिवर्तित कर सकता हूं?

अब मैं इस मूल्य को अपनी वेब सेवा में पास करना चाहता हूं जिसमें लंबे पैरामीटर प्रकार हैं, तो मैं स्ट्रिंग मान को लंबे समय तक कैसे परिवर्तित कर सकता हूं।

उत्तर

52

आप NSString विधियों intValuelongLongValue का उपयोग कर सकते हैं।

-12

यह करें ...

long value = [myString longValue] 
+1

ऐसा मत करो, क्योंकि इस अपवाद का कारण: "गैर मान्यता प्राप्त चयनकर्ता भेजा उदाहरण के लिए "। "- (लंबे समय तक) लंबे समय तक चलें;" या "- (int) intValue;" बजाय। – e40pud

+0

यह गलत है –

+0

विधि मौजूद नहीं है – momomo

13

इस का उपयोग करें:

yourLong = [yourString longLongValue]; 
22

की तरह इस "100,023" एक छोटी संख्या के लिए, यह 'longlongvalue' के साथ स्वीकार्य है। हालांकि, यदि संख्या अंकों में> 10 से अधिक है जिसमें आमतौर पर लंबे मूल्य के लिए उपयोग केस के रूप में माना जाता है। उसके बाद, आप इस तरह के रूप में इस समस्या में इन चलाया जाएगा,:

String value "86200054340607012013" 

कर

@"86200054340607012013" integerValue or intValue 

आप प्रिंट बयान

2147483647 

यदि आप में इस का उत्पादन करेगा

@"86200054340607012013" longlongvalue 

आप इसे प्रिंट सेंट में प्रस्तुत करेंगे एटमेंट

9223372036854775807 

यह मेरे लिए काम करता है और अपेक्षित संख्या प्रिंट करता है।

NSNumberFormatter * f = [[NSNumberFormatter alloc] init]; 
[f setNumberStyle:NSNumberFormatterDecimalStyle]; 
NSNumber * myNumber = [f numberFromString:@"2394739287439284734723"]; 
NSLog(@"longlong: %llu", [myNumber longLongValue]); 
2

आप doubleValue विधि का उपयोग कर सकते परिशुद्धता चेतावनी की हार से बचने के लिए

संबंधित मुद्दे

 संबंधित मुद्दे