NSString到UInt64

时间:2016-03-24 17:08:22

标签: ios objective-c nsstring uint64

如何从NSString转换为UInt64

例如,如果存在UInt64Value辅助方法,则类似这样的事情:

NSString *value = @"1234567";
UInt64 convertedValue = [value UInt64Value];

我正在尝试在iOS项目中执行此操作。

4 个答案:

答案 0 :(得分:6)

为完整性指出另一种可能性:

NSScanner *scanner = [NSScanner scannerWithString:value];
unsigned long long convertedValue = 0;
[scanner scanUnsignedLongLong:&convertedValue];
return convertedValue;

...如果要区分找到值0并找到不是数字的内容,请检查scanUnsignedLongLong上的结果。

答案 1 :(得分:5)

NSString * num = @"123456";

NSNumberFormatter * numberFormatter = [[NSNumberFormatter alloc]init];
NSNumber *  number = [numberFormatter numberFromString:num];
unsigned long long valueUInt64 = number.unsignedLongLongValue;

答案 2 :(得分:0)

您可以使用以下strtoull(const char *, char **, int)

NSString *value = @"1234567";
UInt64 convertedValue = strtoull([value UTF8String], NULL, 0);

答案 3 :(得分:-1)

您可以使用UInt64

获得longLongValue
NSString *str = @"23147653105732";
UInt64 uint64 = [str longLongValue];

获得int64的另一种方法是:

NSString *str = @"23147653105732";
int64_t int64_t = atoll([str UTF8String]);