2013-12-20 4 views
0

안녕 나는 결과에 일초 차이를 얻고 하나 개의 긴 변수NSTimeInterval long 값

NSTimeInterval timeDifference =[endDateTime timeIntervalSinceDate:startDateTime]; 

    long duration= timeDifference-[dauseDuration longValue]; 
    NSString *eventDuration=[NSString stringWithFormat:@"%ld",duration]; 
    NSLog(@"Duration :  %@",eventDuration); 

과 (더블 타입 인) NSTimeInterval와 수학 연산을하고있는 중이 야와 일초 차이, 할 수있는 한 노하우의 감사 미리 !!!

+3

반올림 문제 일 가능성이 있습니다. 표준 double-to-int 변환은 바닥 값을 사용합니다. 변환 전에 반올림을 시도하십시오. – Dave

답변

0

NSTimeInterval은 NSUInteger 값만 포함 할 수 있습니다. '정수'값에서 'long'을 뺄 때 결과는 항상 '정수'가됩니다. 길이가 길면 정밀도가 떨어집니다. 사용해보기,

긴 기간 = (긴) timeDifference- [dauseDuration longValue];

(단, 1 초 차이를 만들 수 있다면 확실하지 않음).

+0

답장을 위해 @karthik에게 감사드립니다. 나는 그저 그 이유를 알고 싶었던 해결책을 알고 있습니다. 제 가정은 그것이 반올림되기 때문에 일어났습니다. 단지 확인하고 싶었 기 때문입니다. –