このコードを、具体的にはhourStep計算で確認してください。目的関数-cの計算が正しい値を返さない
int h = [[timeArray objectAtIndex:0] intValue];
int m = [[timeArray objectAtIndex:1] intValue];
int s = [[timeArray objectAtIndex:2] intValue];
int mm = [[timeArray objectAtIndex:3] intValue];
NSLog([NSString stringWithFormat:@"time h:%d, m:%d, s:%d, mm:%d", h, m, s, mm]);
//time h:13, m:7, s:55, mm:105
float hourStep1 = m/60;
float hourStep2 = h + hourStep1;
float hourStep3 = hourStep2/24;
float hourStep4 = hourStep3 * 15;
int hour1 = ceil(hourStep4);
NSLog([NSString stringWithFormat:@"hourStep1: %f, hourStep2: %f, hourStep3: %f, hourStep4: %f result: %d", hourStep1, hourStep2, hourStep3, hourStep4, hour1]);
//hourStep1: 0.000000, hourStep2: 13.000000, hourStep3: 0.541667, hourStep4: 8.125000 result: 9
float hourStep5 = ((h + (m/60))/24) * 15;
NSLog([NSString stringWithFormat:@"hourStep5: %f", hourStep5]);
//hourStep5: 0.000000
私は、正しい答えを得るために、様々なステップに計算を分解しているが、hourStep5がhourStep4が生成するものを生成しない理由を誰もが説明できますか?
又は偶然、私は知らない)。最初の計算を模倣するには、 '(h +(m/60))/ 24.0'を使います。 –
いいところ、オレ! – Dave
誤って - ゆずとオレに感謝します。もう一度間違えることはありません! –