gpt4 book ai didi

iphone - 为什么 NSNumber 类不能正确地将我的 NSString 对象转换为 long long?

转载 作者:可可西里 更新时间:2023-11-01 04:24:08 25 4
gpt4 key购买 nike

我正在尝试将 NSString 对象转换为具有相同数值的 NSNumber。当我使用此语句创建 NSString 对象时...

NSString *songID = [localNotif.userInfo objectForKey:@"SongID"];

var songID 包含字符串值 @"10359537395704663785"。当我尝试使用语句将其转换为 NSNumber 对象时...

NSNumber *songIDNumber = [NSNumber numberWithLongLong:[songID longLongValue]];

var songIDNumber 包含错误的值 9223372036854775807

我做错了什么?可能还值得注意的是,有时此代码确实可以工作并生成正确的 NSNumber 值,但大多数时候它会失败,如上所示。

在此先感谢您的帮助!

更新:天哪,我喜欢这个网站!感谢 unbeli 和 carl,我能够使用更新的代码修复它,将 NSString 转换为 NSNumber...

unsigned long long ullvalue = strtoull([songID UTF8String], NULL, 0);
NSNumber *songIDNumber = [NSNumber numberWithUnsignedLongLong:ullvalue];

最佳答案

longLongValue returns LLONG_MAX 在溢出的情况下,LLONG_MAX 正是你得到的,9223372036854775807。你的值根本不适合 long long

尝试使用 NSDecimalNumber相反。

关于iphone - 为什么 NSNumber 类不能正确地将我的 NSString 对象转换为 long long?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3622259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com