NSNumber给NSInteger提供了错误的值?

时间:2014-07-29 08:52:38

标签: objective-c

我有一个NSNumber funds。当我这样做时:

NSLog(@"%@ %i", funds, [funds integerValue]);

我明白了:

4869222353 574255057

完全不同的数字。第一个是正确的,所以将它转换为整数肯定有问题。我做错了什么?

感谢。

2 个答案:

答案 0 :(得分:4)

示例代码:

NSNumber *myNum = [NSNumber numberWithLongLong:4869222353];
NSLog(@"%@ %lld",myNum,[myNum longLongValue]);

Why this is working?

答案 1 :(得分:3)

你有溢出。整数是32位长并且是有符号的,因此最大值是2147483647.打印NSNumber以正确的方式执行(可能使用long)。