浮點數比較

      今天終於解決了一個困擾了一週的bug.我們的項目在kdevelop裏開發的code,通過使用autotools做成源碼安裝包後,發現播放錄製文件有問題.視頻播放特別快.而聲音是正常的. 因爲代碼是一樣的,所以一開始我就沒有去懷疑代碼有問題.總認爲是源碼安裝包沒有做好.但是,以前也是用同樣的方法做的包,以前的就沒有問題.於是,又在想可能是代碼哪個地方被改動了.結果代碼的確是一樣的.於是,拿出來討論,主管建議打印下AV同步時,video 的delaytime是否是對的.結果,還真的是錯誤的,正常情況下它應該等於40ms,結果是0.也就是video 根本沒有去跟audio做同步,有多少就播放多少了.

      對比發現,雖然代碼一樣,但是運行卻不一樣.原來是有兩處浮點數跟0進行比較的地方. 之前的RD是直接寫if(delaytime == 0) 和if (delaytime > 0) .其實這個問題很多 考試題上有出現.結果在實際寫代碼的時候,卻忘得一乾二淨.

      兩個浮點數進行比較,浮點數跟0進行比較,是能夠這樣寫的.我將收集下這方面的資料.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章