程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C標准庫參考指南(7)math.h

C標准庫參考指南(7)math.h

編輯:關於C語言

7. math.h

數學頭文件定義了很多數學函數。

宏:

HUGE_VAL

函數:

acos();

asin();

atan();

atan2();

ceil();

cos();

cosh();

exp();

fabs();

floor();

fmod();

frexp();

ldexp();

log();

log10();

modf();

pow();

sin();

sinh();

sqrt();

tan();

tanh();

7.1.錯誤條件

所有math.h函數產生錯誤的情形都是類似的。

當傳遞給函數的參數超出了函數要求的參數定義域時,變量errno被設置為EDOM。函數的返回值是依實現而定的。

當返回值太大而超出了double的數值范圍時,函數返回宏值HUGE_VAL,並且設置變量errno為ERANGE來表示溢出。如果值太小以至於無法表示為double,則函數返回0。在這種情況下,errno是否被設置為ERANGE是依實現而定。

errno,EDOM,和ERANGE在頭文件errno.h中定義。

注意在所有沒有定義域限制的情形(即默認情況)下,參數的值被double類型的最大值和最小值所限制。

7.2.三角函數

7.2.1. acos

聲明:

double acos(double x);

返回:

弧度值“x”的余弦值。

定義域和值域:

定義域為[-1, +1]。值域是[0, PI]。

7.2.2. asin

聲明:

double asin(doublex);

返回:

弧度值“x”的反正弦值。

定義域和值域:

定義域為[-1, +1]。值域為[-PI/2, +PI/2]。

7.2.3. atan

聲明:

double atan(double x);

返回:

弧度值“x”的反正切值。

定義域和值域:

定義域無限制。值域為[-PI/2, +PI/2]。

7.2.4. atan2

聲明:

double atan2(doubly y, double x);

返回:

返回弧度值“y/x”的正負兩種情況中符合值域范圍的反正切值。

定義域和值域:

“y”和“x”都不能是0。值域為[-PI/2, +PI/2]。

7.2.5. cos

聲明:

double cos(double x);

返回:

返回弧度值“x”的余弦值。

定義域和值域:

定義域無限制。值域為[-1, +1]。

7.2.6. cosh

聲明:

double cosh(double x);

返回“x”的雙曲余弦值。

定義域和值域:

無限制。

7.2.7. sin

聲明:

double sin(double x);

返回弧度值“x”的正弦值。

定義域和值域:

無定義域限制,值域為[-1, +1]。

7.2.8. sinh

聲明:

double sinh(double x);

返回“x”的雙曲正弦值。

定義域和值域:

無。

7.2.9. tan

聲明:

double tan(double x);

返回“x”弧度值的正切值。

定義域和值域:

無。

7.2.10. tanh

聲明:

double tanh(double x);

返回:

“x”的雙曲正切值。

定義域和值域:

定義域無限制。值域為[-1, +1]。

7.3. Exponential, Logarithmic, and Power Functions

7.3.1. exp

聲明:

double exp(double x);

返回:

自然常熟“e”的“x”次冪。

定義域和值域:

無限制。

7.3.2. frexp

聲明:

double frexp(double x, int *exponent);

“x”在frexp函數中會被分拆出科學記數法中的尾數和指數兩部分。exponent指針所指向的值為指數。可表示為“x = 尾數 * 2^指數”。
 

返回:

返回尾數。另外“exponent”被設置為指數值。

定義域與值域:

尾數的范圍是[0.5, 1)。

7.3.3. ldexp

聲明:

double ldexp(double x, intexponent);

返回:

“x”乘以2的exponent次冪,即 x * 2 ^ exponent。

定義域和值域:

無限制。

7.3.4. log

聲明:

double log(double x);

返回:

以自然常數“e”為底數的x的對數值,即x的自然對數。

定義域和值域:

無限制。

7.3.5. log10

聲明:

double log10(double x);

返回:

以10為底數的“x”的對數值。

定義域和值域:

無限制。

7.3.6. modf

聲明:

double modf(double x, double *integer);

“x”被拆分為整數部分和小數部分。
 

返回:

“x”小數部分,並且將integer所指的double數值設置為“x”的整數部分。

定義域和值域:

無限制。

7.3.7. pow

聲明:

double pow(double x, double y);

返回:

“x”的“y”次冪。

定義域和值域:

如果“y”是一個大於0小於1的數,那麼“x”不能為負值。如果“y”小於等於0,那麼“x”不能為0。

7.3.8. sqrt

聲明:

double sqrt(double x);

返回:

“x”的算數平方根。

定義域和值域:

參數為非負值。返回值總為正。

7.4.其他數學函數

7.4.1. ceil

聲明:

double ceil(double x);

返回:

大於等於“x”的最小整數。

定義域和值域:

無限制。

7.4.2. fabs

聲明:

double fabs(double x);

返回:

“x”的絕對值。

定義域和值域:

無定義域限制,而返回值總是正的。

7.4.3. floor

聲明:

double floor(double x);

返回:

小於等於“x”的最大整數。

定義域和值域:

無限制。

7.4.4. fmod

聲明:

double fmod(double x, double y);

返回:

“x”除以“y”所得的余數(模)。

定義域和值域:

值域無限制。如果返回值為0,則會產生范圍錯誤,或者返回0值(具體依實現而定)。

英文原文:http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.7.html

原文作者:Eric Huss

中文譯者:柳驚鴻 Poechant

版權聲明:本文的原文版權歸Eric Huss所有,中文譯文版權歸Poechant所有。轉載請注明來自"柳大的CSDN博客":http://blog.csdn.net/poechant

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved