math.h

概览

math.h 提供了一系列数学计算相关的函数, 在某些版本的 GCC 中, 需要在链接时指定 libm 才能使用:

gcc test_math.c -lm

math.h 中的函数传入的参数和返回值都是 double 类型的.

HUGE_VAL

用来表示一个无法用浮点数表示的数, 可以认为代表 “无穷大”

当数值超出浮点数范围时, errno 被设为 ERANGE, 并返回 HUGE_VAL- HUGE_VAL.

函数

三角函数

double acos(double)
返回:反余弦 \(\arccos\), 弧度制
double asin(double)
返回:反正弦 \(\arcsin\), 弧度制
double atan(double)
返回:反正切 \(\arctan\), 弧度制
double atan2(double y, double x)
返回:点 (x, y) 对应的角度, 弧度制
double sin(double)
返回:正弦 \(\sin\), 弧度制
double cos(double)
返回:余弦 \(\cos\), 弧度制
double tan(double)
返回:正切 \(\tan\), 弧度制

双曲函数

double cosh(double)
返回:双曲余弦 \(\cosh\)
double sinh(double)
返回:双曲正弦 \(\sinh\)
double tanh(double)
返回:双曲正切 \(\tanh\)

指数对数

double exp(double x)
返回:指数 \(e^x\)
double frexp(double x, int *n)

分解浮点数 \(x = a \times 2^n\)

返回值为 \(a\), 将指数存入整数指针 n 所指的内存.

double ldexp(double x, int n)
返回:\(x \times 2^n\)
double log(double x)
返回:自然对数 \(\ln x\) (基数为 \(e\))
double log10(double x)
返回:常用对数 \(\log x\), (基数为 10)
double pow(double x, double y)
返回:\(x^y\)

其他

double sqrt(double x)

平方根.

返回:\(\sqrt{x}\)
double fmod(double x, double *a)

分解浮点数为整数与小数部分 \(x = a + b\)

  • a 为整数部分
  • b 为小数部分

小数部分被返回, 整数部分通过指针赋值.

返回:b
double modf(double x, double y)

返回 \(x / y\) 的余数.

double ceil(double x)

向上取整

ceil(123.9) == 124.0;
ceil(123.1) == 124.0;
ceil(122.9) == 123.0;
double fabs(double x)

绝对值

返回:\(|x|\)