C/C++反三角函數使用注意


最近寫的東西用到了數學庫中的acos函數,但是代碼在運行的時候有時候會出莫名其妙的錯誤,比如返回值是個特別大的數。

最后在debug 的時候發現acos返回的數據很奇怪,但是傳入的參數明明沒有問題,可以保證是(-1,1)。

回想起,double類型的末尾數據是不確定的,比如當double類型數據alpha = 1.0時其真實值可能是1.00001;這明明是很早就知道的,但是在寫代碼的時候有時候卻很容易忘記。所以在acos部分加入界限判別部分

acos((alpha > 0.99) ? 0.99 : (alpha < -0.99) ? -0.99 : alpha):

借此以作提醒,熟記熟用基本知識!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM