0
NSTimeInterval expirationTime = (secondsSinceUnixEpoch*1000)+120000;
expirationTime = ceil(expirationTime/2);
int expirationInt = (int)expirationTime;
NSLog(@"%d", expirationInt);

日志输出始终为负数,即使在将其转换为 int 之前它是正数...我尝试将其乘以 -1 使其再次为正数,但它只是保持负数!我完全感到困惑....对C了解不多,我只是在做一些愚蠢的事情吗?

4

2 回答 2

4

在我看来,这个数字(secondsSinceUnixEpoch*1000)+120000太大了,无法放入int. 整数有可能溢出并变为负数。

于 2013-11-13T22:23:09.200 回答
1

转换为long long是一种解决方案。正如您在评论中所说,您希望显示一个整数以在 URL 中使用。只需这样做:

NSTimeInterval expirationTime = (secondsSinceUnixEpoch*1000)+120000;
expirationTime = ceil(expirationTime/2);
NSString *urlString = [NSString stringWithFormat:@"http://example.com?time=%.0f", expirationTime];

这会将十进制数格式化为整数。

于 2013-11-13T22:53:31.783 回答