2013-12-20 51 views
0

你好我做數學運算與NSTimeInterval(這是double型)與一個長變量NSTimeInterval 1個長值

NSTimeInterval timeDifference =[endDateTime timeIntervalSinceDate:startDateTime]; 

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

在那裏我得到的結果是1秒差第二個區別,可以將任何人知道的感謝提前 !!!

+3

可能是舍入問題;標準的double-to-int轉換使用底板值。在轉換之前嘗試四捨五入。 – Dave

回答

0

NSTimeInterval只能保存NSUInteger值。 當您從「整數」值中減去「長」時,結果將始終爲「整數」。 長期將失去其精度。 嘗試使用,

long duration =(long)timeDifference- [dauseDuration longValue]; (但是不確定,如果你能彌補1秒的差距)。

+0

感謝@karthik的回覆我知道解決方案只是我想知道它背後的原因,我的假設是由於四捨五入正在發生的事情只是想驗證。 –