Как я могу конвертировать NSString в длинное значение? - PullRequest
29 голосов
/ 18 марта 2011

У меня есть одно значение 100023, и я взял его в NSString.

Теперь я хочу передать это значение в мой веб-сервис, который содержит длинный тип параметра, так как я могу преобразовать строковое значение вдлинный.

Ответы [ 6 ]

56 голосов
/ 18 марта 2011

Вы можете использовать NSString методы intValue longLongValue.

23 голосов
/ 07 января 2013

Для небольшого числа, такого как «100023», это допустимо для «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]);   
13 голосов
/ 08 октября 2012

Используйте это:

    yourLong = [yourString longLongValue];
2 голосов
/ 26 января 2015

Вы можете использовать метод doubleValue , чтобы избежать потери точности предупреждений

0 голосов
/ 05 марта 2013

Ответ:

float floatId = [strID floatValue];
0 голосов
/ 18 марта 2011

Сделай это ...

long value = [myString longValue]
...