一、错误
-
<math.h>中的函数对错误的处理方式与其他库函数不同。
-
当发生错误时,<math. h>的大多数函数会将一个错误码存储到一个名为errno(在<errno.h>中声明的)的特殊变量中。
-
此外,一旦函数的返回值大于double类型的最大取值,<math.h>中的函数会返回一个特殊的值,这个值由HUGE_VAL宏定义(这个宏在<math. h>中定义)。
-
HUGE _VAL是double类型的,但不定是一个普通的数。 (IEEE浮点运算标准定义了一个值叫“无穷数”,这个值是HUGE_VAL的一个合理的选择。)
-
<math.h>中的函数检查下面两种错误。
-
定义域错误 EDOM :函数的实参超出了函数的定义域。当定义域错误发生时,函数的返回值是由实现定义的,同时EDOM(“定义域错误")会被存储到errmo中。
在<math.h>的某些实现中,当定义域错误发生时,函数会返回一个特殊的值NaN (“非数”)。 -
取值范围错误 ERANGE :函数的返回值超出了double类型的取值范围。如果返回值的绝对值过大(上溢出),函数会根据正确结果的符号返回正的或负的HUGE_VAL。此外,值ERANGE(“取值范围错误")会被存储到errno中。
如果返回值的绝对值太小(下溢出),函数返回零;一些实现可能也会将ERANGE存储到errno中。
二、分类
1、三角函数
double acos(double x);
double asin(double x);
double atan(double x);
double atan2(double y, double x);
double cos(double x);
double sin(double x);
double tan(double x);
2、双曲函数
double cosh(double x);
double sinh(double x);
double tanh(double x);
3、指数函数和对数函数
double exp(double x);
double frexp(double value, int *exp);
double ldexp(double x, int exp);
double log(double x);
double log10(double x);
double modf(double value, double *iptr);
4、幂函数
double pow(double x, double y);
double sqrt(double x);
5、就近取整函数、绝对值函数、取余函数
double ceil(double x);
double fabs(double x);
double floor(double x);
double fmod(double x, double y);