C语言数学函数库
數學函數庫
幾乎所有語言都會提供數學函數庫,數學函數庫起碼包含冪,對數、三角函數等最基本的運算,C對于基本數學函數還算全面,如下表:
使用數學函數庫需要導入math.h,表中所有參數和返回值都是double,對于float, long double類型有對應的函數sqrtf()和sqrtl(),不同編譯器提供的類型可能不同。這里要說的是為什么反正切有兩個函數atan()和atan2(),當我們通過坐標求夾角時,可以使用反正切函數atan(y/x)求得,如圖:
但是atan()的值域為(-π/2, π/2),只能返回一四象限的角,如圖:
如果坐標在二三象限就需要根據x,y的正負來判斷,當x為負y為正時在第二象限,當x,y都為負時在第三象限。另外當坐標在y軸上時,如果y為正角度為π/2,y為負角度為-π/2,但由于x=0,y/x會導致編譯器報錯,這些都需要自己編寫代碼處理,為此math庫給出了atan2()函數,它會自動處理這些情況。很多高級語言都效仿C的數學函數庫,函數名稱幾乎相同,也都有atan2()函數。
總結
- 上一篇: gdb命令手册
- 下一篇: 子进程无法从标准输入读取数据