ios - 为什么将我的 float 转换为整数会使数字变为负数?

标签 ios objective-c c int nstimeinterval

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

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

最佳答案

在我看来,数字 (secondsSinceUnixEpoch*1000)+120000 太大了,int 装不下。可能是整数溢出并变为负数。

关于ios - 为什么将我的 float 转换为整数会使数字变为负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19965531/

相关文章:

ios - 保存并退出按钮验证

iOS 9.0.2 Web View Twitter API 中的问题

iphone - 禁用 iPhone 3G S 中的自动对焦功能

c - NVAPI 设备 ID 与 CUDA 设备 ID 有何关系?

c - 使用 getchar 使用循环 c 代码丢弃除第一个字符之外的所有字符

ios - 如何保存拍摄的图像用作背景图像?

ios - View Controller 之间的导航不起作用

objective-c - 在 Objective-C 中存储二维数组

objective-c - 如何从我的 Cocoa 应用程序在终端中运行命令?

c - 静态库和 JNI