<math.h> — 数学函数
头文件: #include <math.h>
提供三角函数、指数/对数、幂次、取整等数学运算。编译时需链接数学库:-lm。
编译与链接
gcc program.c -lm # 必须显式链接 libm
三角函数(参数均为弧度)
| 函数 | 说明 |
|---|
sin, cos, tan | 正弦、余弦、正切 |
asin, acos, atan | 反三角函数 |
atan2(y, x) | 计算 y/x 的反正切,根据符号确定象限,值域 (-pi, pi] |
指数与对数
| 函数 | 说明 |
|---|
exp(x) | e^x |
log(x) | 自然对数 ln(x),x > 0 |
log10(x) | 常用对数 log10(x) |
expm1(x) | e^x - 1,x 接近 0 时精度更高 (C99) |
log1p(x) | ln(1+x),x 接近 0 时精度更高 (C99) |
幂次与根
| 函数 | 说明 |
|---|
pow(x, y) | x^y;x 为负且 y 非整数时报错 |
sqrt(x) | 平方根,x >= 0 |
cbrt(x) | 立方根,x 可为负 (C99) |
hypot(x, y) | sqrt(x^2 + y^2),避免上溢/下溢 (C99) |
取整与绝对值
| 函数 | 说明 | 示例 |
|---|
fabs(x) | 绝对值 | fabs(-3.5) -> 3.5 |
ceil(x) | 向上取整 | ceil(3.1) -> 4.0 |
floor(x) | 向下取整 | floor(3.9) -> 3.0 |
round(x) | 四舍五入,0.5 远离零 | round(0.5) -> 1.0 |
trunc(x) | 向零取整 | trunc(-3.9) -> -3.0 |
取余与分割
| 函数 | 说明 |
|---|
fmod(x, y) | 浮点取余;结果符号与 x 相同 |
modf(x, iptr) | 分解为整数部分(存于 iptr)和小数部分(返回值) |
跨语言参考