如何从NSString
转换为UInt64
?
例如,如果存在UInt64Value
辅助方法,则类似这样的事情:
NSString *value = @"1234567";
UInt64 convertedValue = [value UInt64Value];
我正在尝试在iOS项目中执行此操作。
答案 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]);