我有一个 NSDictionary,其中包含一个值为 4937446359977427944 的键。我尝试将它的值作为 long long 并得到 4937446359977427968 回来?
NSLog(@"value1 = %@", [dict objectForKey"MyKey"]); // prints 4937446359977427944
long long lv = [dict objectForKey:@"MyKey"] longLongValue];
NSLog(@"value2 = %lld", lv); // prints 4937446359977427968
正在做:
NSLog(@"%lld", [@"4937446359977427944" longLongValue]); // prints 4937446359977427944
我假设这是某种舍入问题,因为低位似乎已被清除,我只是不知道如何阻止它(或为什么会发生)。
正在使用创建字典,NSJSONSerialization
并且 JSON 对象确实(正确地)包含一个"MyKey": 4937446359977427944
条目并且该dict
对象是正确的。
中保存的值NSDictionary
是NSDecimalNumber
有什么东西在幕后被转换成花车吗?