이 코드 조각, 특히 hourStep 계산을 확인하십시오.objective-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가 생성하는 것을 생산하지 않는 사람이 왜 설명 할 수 있습니까? 당신의 라인에서
이 존재 60'/상기 연산과 동일한 결과를 생성하지 않을 것이다 (부담 또는 우연히, 나는 모른다). 첫 번째 계산을 모방하려면'(h + (m/60))/24.0'을 사용하십시오. –
좋은 장소, 올레! 우연히 – Dave
- 감사합니다. Yuji와 Ole. 다시 그 실수를하지 않을 것입니다! –