2011-03-18 64 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方法,以避免丢失精度警告