NSString 到 UInt64

NSString to UInt64

如何从 NSString 转换为 UInt64

例如,如果存在 UInt64Value 辅助方法,则如下所示:

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

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

NSString * num = @"123456";

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

你可以用 longLongValue

得到一个 UInt64
NSString *str = @"23147653105732";
UInt64 uint64 = [str longLongValue];

另一种获得 int64 的方法是:

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

为了完整性提出另一种可能性:

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

...如果您想区分查找值 0 和查找非数字的值,请检查 scanUnsignedLongLong 上的结果。

您可以按如下方式使用strtoull(const char *, char **, int)

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