我在 Objective-C 中有以下代码将秒数(int)转换为“x 小时 y 分钟 z 秒”形式的日期字符串。对于 8812 秒,它应该返回 2 小时 26 分 52 秒,但它返回的是 2 小时 26 分 51 秒。
这是麻烦的行:
float timeInSeconds = (60 * ((((seconds / 3600.0) - (seconds / 3600)) * 60.0) - (int)(((seconds / 3600.0) - (seconds / 3600)) * 60.0)));
如果我这样做,这将导致 52.0 NSLog
。但是,如果我这样做:
int timeInSeconds = (int)(60 * ((((seconds / 3600.0) - (seconds / 3600)) * 60.0) - (int)(((seconds / 3600.0) - (seconds / 3600)) * 60.0)));
我得到51 NSLog
。为什么会这样?