0

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します。それはなぜですか?

4

1 に答える 1