适用于整数和浮点数的数学函数分别有哪些?
运算符+,-,*和/(加、减、乘和除)对整数和浮点数都适用,而运算符%(求余)仅适用于整数。
适用于浮点数的大多数函数在头文件math.h中说明。为了提高精确度,这些函数大多以双精度浮点数的精度进行操作。如果传递过来的参数不在其定义域内(函数的定义域是指函数参数有效值的集合),这些函数会返回一些不确定的值,并将变量errno置为EDOM。如果返回值太大或太小,无法用一个double类型表示(造成上溢或下溢),这些函数会返回HUGEVAL(表示上溢)或O(表示下溢),并将errno置为ERANGE,EDOM,ERANGE和HUGEVAL都在math.h中定义。
下面列出了在math.h中说明的函数的描述:
适用于浮点数的大多数函数在头文件math.h中说明。为了提高精确度,这些函数大多以双精度浮点数的精度进行操作。如果传递过来的参数不在其定义域内(函数的定义域是指函数参数有效值的集合),这些函数会返回一些不确定的值,并将变量errno置为EDOM。如果返回值太大或太小,无法用一个double类型表示(造成上溢或下溢),这些函数会返回HUGEVAL(表示上溢)或O(表示下溢),并将errno置为ERANGE,EDOM,ERANGE和HUGEVAL都在math.h中定义。
下面列出了在math.h中说明的函数的描述:
- double COS(double),double sin(double)和double tan(double)的参数都是一个弧度值,其返回值分别为该值的正弦值、余弦值和正切值。
- double acos(double),double asin(double)和double atan(double)的参数都是一个值,其返回值分别为该值的反正弦值、反余弦值和反正切值。传递给acos()和asin()的值必须在-1和1之间。
- double atan2(double x,double y)返回x/y的反正切值,不管x/y是否能表示成double类型(例如y为0时)。
- double cosh(double),double sinh(double)和double tanh(double)的参数都是一个弧度值,其返回值分别为该值的双曲正弦值、双曲余弦值和双曲正切值。
- double exp(double x),double log(double x)和double logl0(double x)的参数都是一个值,其返回值分别为e。,x的自然对数值和x的以10为底的对数值。当x为0或一个负数时,后两个函数都将分别导致一个范围错误(ERANGE)或一个定义域错误(EDOM)。
- double sqrt(double)将返回其参数的平方根值。当该参数为负数时,该函数将导致一个定义域错误(EDOM)。
- double ldexp(double n,double e)返回n*2e。这与整数的“<<”运算符有些相似。
- double pow(double b,double e)返回be。当b为O而e小于等于0时,或者当b小于O而e不是一个整数值时,该函数将导致一个定义域错误(EDOM)。
- double frexp(double n,int*i)返回n的尾数(mantissa),并将n的指数(exponent)存放在i所指向的整型变量中。尾数在o.5和1之间(不包括1本身),而指数是这样一个数,它将使n=mantissa*2exponent。
- double modl(double n,int *i)返回n的小数部分,并将n的整数部分存放在i所指向的整型变量中。
- double celt(double)和double floor(double)分别返回大于其参数的最小整数和小于其参数的最大整数。例如,ceil(-1.1)返回-1.O,而floor(-1.1)返回-2.0。
- double fmod(double x,double y)返回x/y的余数。这与整数的%运算符相似,但该函数的参数和返回值并不局限于整数。当y为O时,该函数将导致一个定义域错误(EDOM)。
- double fabs(double)返回其参数的绝对值(一个数量相同的数字,但永远是正数)。例如,labs(-3.14)返回3.14。