C 语言 <math.h> 库提供了丰富的数学函数,以下是最常用的函数分类介绍:
1. 三角函数(弧度制)
| 函数名 |
功能 |
示例 |
sin(x) |
正弦函数 |
sin(3.14159/2) ≈ 1.0 |
cos(x) |
余弦函数 |
cos(0) = 1.0 |
tan(x) |
正切函数 |
tan(3.14159/4) ≈ 1.0 |
asin(x) |
反正弦函数(返回 [-π/2, π/2]) |
asin(1.0) ≈ 1.5708 |
acos(x) |
反余弦函数(返回 [0, π]) |
acos(1.0) = 0.0 |
atan2(y, x) |
计算 y/x 的反正切(考虑象限,返回 [-π, π]) |
atan2(1.0, 1.0) ≈ 0.7854 |
注:x是弧度制
2. 指数与对数函数
| 函数名 |
功能 |
示例 |
exp(x) |
自然指数 ex |
exp(1.0) ≈ 2.71828 |
log(x) |
自然对数 ln(x)(x>0) |
log(2.71828) ≈ 1.0 |
log10(x) |
以 10 为底的对数 log10(x) |
log10(100.0) = 2.0 |
pow(x, y) |
幂函数 xy |
pow(2.0, 3.0) = 8.0 |
3. 幂函数、绝对值与取整
| 函数名 |
功能 |
示例 |
sqrt(x) |
平方根 x(x≥0) |
sqrt(16.0) = 4.0 |
fabs(x) |
浮点数绝对值 |
fabs(-3.14) = 3.14 |
ceil(x) |
向上取整(返回不小于 x 的最小整数) |
ceil(2.3) = 3.0 |
floor(x) |
向下取整(返回不大于 x 的最大整数) |
floor(2.9) = 2.0 |
round(x) |
四舍五入取整 |
round(2.5) = 3.0 |
4. 其他常用函数
| 函数名 |
功能 |
示例 |
fmod(x, y) |
浮点余数(符号与 x 相同) |
fmod(5.2, 2.0) ≈ 1.2 |
hypot(x, y) |
计算直角三角形斜边 x2+y2 |
hypot(3.0, 4.0) = 5.0 |
modf(x, *int_part) |
拆分 x 为整数部分(通过指针返回)和小数部分 |
modf(3.14, &int_part) → 0.14,int_part=3.0 |
注意事项
- 参数与返回值 :所有函数的参数和返回值默认均为
double 类型(也有 float 版本如 sinf(),long double 版本如 sinl())。
- 编译链接 :使用
<math.h> 时,需在编译时添加 -lm 选项链接数学库(如 gcc main.c -o main -lm)。
- 定义域检查 :部分函数(如
sqrt、log)对输入有定义域要求,非法输入可能导致 NaN 或无穷大。
得到一个浮点型变量然后保留小数点后 1 位有效数字
通过 round() 函数(四舍五入)结合乘除运算,可修改变量值为保留 1 位小数的结果。
cpp
复制代码
#include <stdio.h>
#include <math.h> // 需包含 math.h 并链接 -lm
int main() {
double num = 3.14159;
num = round(num * 10) / 10.0; // 先乘10取整,再除以10
printf("修改后的值:%.1f\n", num); // 输出 3.1
return 0;
}
- 编译注意 :使用
math.h 时,需在编译时添加 -lm 链接数学库(如 gcc main.c -o main -lm)。