C++数学库(cmath)数学常量与数学函数
<cmath>头文件中包含了众多的数学常量与数学函数,在科学计算、工程计算、图形学等众多领域的C++程序开发中都有着广泛的应用。
1. 数学常量:
M_PI:表示圆周率 pi,其近似值为 3.14159265358979323846。
M_E:表示自然常数 e,其近似值为 2.71828182845904523536。
M_LOG2E:表示以 2 为底 e的对数,即 log2e,其近似值为 1.4426950408889634074。
M_LOG10E:表示以 10 为底 e 的对数,即 log10e,其近似值为 0.43429448190325182765。
M_SQRT2:表示根号2,其近似值为 1.41421356237309504880。
M_SQRT1_2:表示 根号2的倒数,其近似值为 0.70710678118654752440。
2. 基本三角函数:
double sin(double x):计算正弦值,x是以弧度为单位的角度。
#include <iostream> #include <cmath> int main() { double angle_rad = M_PI / 4; // 45度角转换为弧度 std::cout << "sin(pi/4) = " << std::sin(angle_rad) << std::endl; return 0; }
double cos(double x):计算余弦值,x是以弧度为单位的角度。
#include <iostream> #include <cmath> int main() { double angle_rad = M_PI / 3; // 60度角转换为弧度 std::cout << "cos(pi/3) = " << std::cos(angle_rad) << std::endl; return 0; }
double tan(double x):计算正切值,x是以弧度为单位的角度。
#include <iostream> #include <cmath> int main() { double angle_rad = M_PI / 6; // 30度角转换为弧度 std::cout << "tan(pi/6) = " << std::tan(angle_rad) << std::endl; return 0; }
3. 反三角函数:
double asin(double x):计算反正弦值,返回值是以弧度为单位的角度,x的取值范围是 [-1, 1]。
#include <iostream> #include <cmath> int main() { double x = 0.5; std::cout << "asin(0.5) = " << std::asin(x) * 180.0 / M_PI << " degrees" << std::endl; return 0; }
double acos(double x):计算反余弦值,返回值是以弧度为单位的角度,x的取值范围是 [-1, 1]。
double x = 0.5; std::cout << "acos(0.5) = " << std::acos(x) * 180.0 / M_PI << " degrees" << std::endl;
double atan(double x):计算反正切值,返回值是以弧度为单位的角度。
double x = 1.0; std::cout << "atan(1.0) = " << std::atan(x) * 180.0 / M_PI << " degrees" << std::endl;
double atan2(double y, double x):计算 y/x 的反正切值,返回值是以弧度为单位的角度。
double y = 2.0; double x = 1.0; std::cout << "atan2(2.0, 1.0) = " << std::atan2(y, x) * 180.0 / M_PI << " degrees" << std::endl;
4. 指数和对数函数:
double exp(double x):计算自然指数函数 ex 的值。
double x = 2.0; std::cout << "e^2 = " << std::exp(x) << std::endl;
double log(double x):计算自然对数(以 e 为底),x需大于 0。
double x = 10.0; std::cout << "ln(10) = " << std::log(x) << std::endl;
double log10(double x):计算常用对数(以 10 为底),x需大于 0。
double x = 100.0; std::cout << "log10(100) = " << std::log10(x) << std::endl;
5. 幂函数:
double pow(double x, double y):计算 xy 的值。
double x = 2.0; double y = 3.0; std::cout << "2^3 = " << std::pow(x, y) << std::endl;
6. 绝对值和取整函数:
int abs(int n):计算整数n的绝对值。
int num = -5; std::cout << "| - 5| = " << std::abs(num) << std::endl;
double fabs(double x):计算浮点数x的绝对值。
double num = -3.14; std::cout << "| - 3.14| = " << std::fabs(num) << std::endl;
double ceil(double x):对 x 向上取整,返回不小于x的最小整数。
double num = 3.14; std::cout << "ceil(3.14) = " << std::ceil(num) << std::endl;
double floor(double x):对 x 向下取整,返回不大于x的最大整数。
double num = 3.14; std::cout << "floor(3.14) = " << std::floor(num) << std::endl;
7. 其他函数:
double sqrt(double x):计算给非负数 x 的平方根
double num = 2.25; double result = std::sqrt(num); std::cout << "The square root of " << num << " is " << result << std::endl;
double hypot(double x, double y):计算直角三角形的斜边长度(直角坐标系中点到原点的距离),即返回 sqrt(x2 + y2) 的值。
double x = 3.0; double y = 4.0; std::cout << "Hypotenuse of a right triangle with sides 3 and 4 = " << std::hypot(x, y) << std::endl;
double cbrt(double x):计算 x 的立方根。
#include <iostream> #include <cmath> int main() { double x = 8.0; std::cout << "cbrt(8) = " << std::cbrt(x) << std::endl; return 0; }
double fmod(double numer, double denom):返回 numer / denom 的浮点余数。
double numer = 5.3; double denom = 2.0; std::cout << "fmod(5.3, 2.0) = " << std::fmod(numer, denom) << std::endl;
C++编程语言基础
- C++:从入门到工作的教程
- 这是我的第一个 C++程序!
- C++中main函数有什么作用?
- C++中 #include 指令的作用
- C++中常用的预处理指令
- C++中 iostream 头文件定义了什么
- C++名称空间(namespace)
- C++标准库中 std 命名空间定义了些什么
- C++常用的头文件
- C++源代码的发布方式
- C++变量名的定义、变量的作用、使用规范
- C++的关键字列表
- C++数据类型:整型(整数类型)
- 二进制补码、原码、反码
- C++数据类型:char字符型(整数类型)
- ASCII码表及C++字符函数库(cctype)
- 计算机汉字编码
- C++数据类型:bool类型(整数类型)
- C++中 const 限定符
- C++数据类型:浮点数
- C++运算符:算术运算符
- C++运算符:类型转换规则
- 计算机数据存储大小端模式
- C++运算符:位运算 与 bitset类库
- C++运算符:关系运算符与逻辑运算符
- C++流程控制:顺序、选择、循环、跳转语句
- C++函数的定义、参数传递、重载、嵌套
- C++数组:一维、二维、多维数组的运用
- C-style字符串、库函数 与 std::string对象
- C++数据类型:结构体(struct)
- C++数据类型:联合体(union)
- C++数据类型:枚举(enum)
- C++数据类型别名:typedef
- C++指针
- C++内存操作符:new分配 与 delete释放
- C++标准模板库(STL)容器、算法、迭代器
- C++标准模板库(STL)vector顺序容器
- C++标准模板库(STL)array固定容器
- C++标准模板库(STL)list双向链表容器
- C++标准模板库(STL)deque双端队列
- C++标准模板库(STL)集合 set 关联容器
- C++标准模板库(STL)map关联容器
- C++标准模板库(STL)unordered_set
- C++标准模板库(STL)unordered_map
- C++标准模板库(STL)algorithm算法库
- C++文件操作
- C++数学库(cmath)数学常量与数学函数
- C++模板:函数模板、类模板
- C++与SQLite3联合打造实用的应用程序
- C++实战开发中常用的库(概述)
- 第二部分:C++面向对象编程
- C++:类的定义与声明、类对象应用
- 第三部分:数据结构与算法(概述)
- 第一部分:C++语言简介与学习路线