2011-03-18 62 views

回答

52

您可以使用NSString方法intValuelongLongValue

-12

操作方法......

long value = [myString longValue] 
+1

不這樣做,因爲這會導致exeption:「無法識別的選擇發送例如「。使用「 - (long long)longLongValue;」或「 - (int)intValue;」代替。 – e40pud 2011-03-31 07:06:34

+0

這是不正確的 – 2013-01-15 16:21:30

+0

方法不存在 – momomo 2013-03-05 18:19:41

13

使用此:

yourLong = [yourString longLongValue]; 
22

對於這樣的 「100023」 一個小數目,這是與 'longlongvalue' 可以接受的。但是,如果數字位數超過> 10,那麼通常將其視爲長期價值的用例。然後,您將運行到這個問題,如:

String value "86200054340607012013" 

@"86200054340607012013" integerValue or intValue 

你會在打印語句

2147483647 

如果你這樣做產生這種

@"86200054340607012013" longlongvalue 

你會在印刷品中產生這個atement

9223372036854775807 

這對我有用並打印出預期的數字。

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

答案是:

float floatId = [strID floatValue]; 
2

可以使用的doubleValue方法,以避免丟失精度警告