last modified: 2010-05-28

C语言标准库 - math.h

4 数学函数<math.h>

头文件<math.h>中说明了数学函数和宏。

宏EDOM和ERANGE(定义在头文件<errno.h>中)是两个非0整常量,用于引发各个数学函数的定义域错误和值域错误;HUGE_VAL是一个double类型的正数。当变量取值在函数的定义域之外时,就会出现定义域错误。在发生定义域错误时,全局变量errno的值被置为EDOM,函数的返回值视具体实现而定。如果函数的结果不能用double类型表示,那么就会发生值域错误。当结果上溢时,函数返回HUGE_VAL并带有正确的符号(正负号),errno的值被置为ERANGE。当结果下溢时,函数返回0,而errno是否被设置为ERANGE视具体实现而定。

4.1 sin

#include <math.h>
double sin(double arg);

返回arg的正弦值,arg单位为弧度。

4.2 cos

#include <math.h>
double cos(double arg);

返回arg的余弦值,arg单位为弧度。

4.3 tan

#include <math.h>
double tan(double arg);

返回arg的正切值,arg单位为弧度。

4.4 asin

#include <math.h>
double asin(double arg);

返回arg的反正弦值sin-1(x),值域为[-pi/2,pi/2], 其中变量范围[-1,1]。

4.5 acos

#include <math.h>
double acos(double arg);

返回arg的反余弦值cos-1(x),值域为[0,pi], 其中变量范围[-1,1]。

4.6 atan

#include <math.h>
double atan(double arg);

返回arg的反正切值tan-1(x),值域为[-pi/2,pi/2]。

4.7 atan2

#include <math.h>
double atan2(double a, double b);

返回a/b的反正切值tan-1(a/b),值域为[-pi,pi]。

4.8 sinh

#include <math.h>
double sinh(double arg);

返回arg的双曲正弦值。

4.9 cosh

#include <math.h>
double cosh(double arg);

返回arg的双曲余弦值。

4.10 tanh

#include <math.h>
double tanh(double arg);

返回arg的双曲正切值。

4.11 exp

#include <math.h>
double exp(double arg);

返回幂函数e^x。

4.12 log

#include <math.h>
double log(double arg);

返回自然对数ln(x),其中变量范围arg > 0。

4.13 log10

#include <math.h>
double log10(double arg);

返回以10为底的对数log10(x),其中变量范围arg > 0。

4.14 pow

#include <math.h>
double pow(double x, double y);

返回x^y,如果x=0且y<=0或者如果x<0且y不是整数,那么产生定义域错误。

4.15 sqrt

#include <math.h>
double sqrt(double arg);

返回arg的平方根,其中变量范围arg>=0。

4.16 ceil

#include <math.h>
double ceil(double arg);

返回不小于arg的最小整数。

4.17 floor

#include <math.h>
double floor(double arg);

返回不大于arg的最大整数。

4.18 fabs

#include <math.h>
double fabs(double arg);

返回arg的绝对值|x|。

4.19 ldexp

#include <math.h>
double ldexp(double num, int exp);

返回num * 2^exp。

4.20 frexp

#include <math.h>
double frexp(double num, int *exp);

把num分成一个在[1/2,1)区间的真分数和一个2的幂数。将真分数返回,幂数保存在*exp中。如果num等于0,那么这两部分均为0。

4.21 modf

#include <math.h>
double modf(double num, double *i);

把num分成整数和小数两部分,两部分均与num有同样的正负号。函数返回小数部分,整数部分保存在*i中。

4.22 fmod

#include <math.h>
double fmod(double a, double b);

返回a/b的浮点余数,符号与a相同。如果b为0,那么结果由具体实现而定。