cmath头文件

晨曦

cmath 是 C++ 标准库中的一个数学库,它提供了一系列用于执行数学运算的函数。这些函数大多是从 C 语言中的 math.h 头文件继承过来的,但 cmath 是 C++ 风格的封装,所有的函数都位于 std 命名空间中。以下是对 cmath 库的一些主要功能的讲解:

引入库

要使用 cmath 库中的函数,你需要在你的 C++ 文件中包含这个头文件:

#include <cmath>

并且,由于 cmath 中的函数都在 std 命名空间中,你可能需要在使用这些函数时加上 std:: 前缀,或者使用 using namespace std; 来避免重复书写。

基本数学函数

幂和对数函数

  • std::pow(base, exponent):计算 baseexponent 次幂。
  • std::sqrt(x):计算 x 的平方根。
  • std::log(x):计算 x 的自然对数(以 e 为底)。
  • std::log10(x):计算 x 的以 10 为底的对数。

三角函数

  • std::sin(x):计算 x(以弧度为单位)的正弦值。
  • std::cos(x):计算 x(以弧度为单位)的余弦值。
  • std::tan(x):计算 x(以弧度为单位)的正切值。
  • std::asin(x):计算 x 的反正弦值(返回弧度)。
  • std::acos(x):计算 x 的反余弦值(返回弧度)。
  • std::atan(x):计算 x 的反正切值(返回弧度)。
  • std::atan2(y, x):计算点 (x, y) 的极坐标角度(返回弧度),考虑了所有四个象限。

指数和对数函数(底数不为 e)

  • std::exp(x):计算 e 的 x 次幂。
  • std::logb(x):计算 x 的以 2 为底的指数部分(即 log2(x) 的整数部分)。
  • std::ilogb(x):计算 x 的以 2 为底的指数部分(整数返回)。
  • std::scalbn(x, n):计算 x * (2^n)
  • std::scalbnf(x, n)scalbn 的单精度浮点版本。
  • std::scalbnl(x, n)scalbn 的长双精度浮点版本。

浮点数的取整和舍入

  • std::ceil(x):向上取整,返回大于或等于 x 的最小整数。
  • std::floor(x):向下取整,返回小于或等于 x 的最大整数。
  • std::round(x):四舍五入到最近的整数。
  • std::trunc(x):丢弃 x 的小数部分,返回其整数部分。
  • std::fmod(x, y):计算 x 除以 y 的余数,结果有相同的符号作为 x
  • std::remainder(x, y):计算 x 除以 y 的 IEEE 754 余数。

绝对值和其他函数

  • std::abs(x):计算 x 的绝对值。对于整数和浮点数有不同的重载版本。
  • std::fabs(x):计算浮点数 x 的绝对值(std::abs 的浮点版本)。
  • std::signbit(x):检查 x 的符号位是否设置(即是否为负数)。
  • std::copysign(x, y):返回一个与 y 有相同符号的 x 的值。

注意事项

  • 大多数 cmath 函数都会处理其参数范围内的有效值,但对于某些边界情况(如除以零、取负数的平方根等),这些函数可能会返回特定的值(如 std::nanstd::inf)或抛出异常。
  • 使用 cmath 函数时,请注意它们的参数类型(整数还是浮点数),因为不同的类型可能对应不同的重载版本。
  • 对于涉及浮点数运算的精度问题,要特别小心,因为浮点运算可能会受到计算机表示法的限制。
  • 标题: cmath头文件
  • 作者: 晨曦
  • 创建于 : 2024-10-19 20:27:53
  • 更新于 : 2024-11-07 02:16:57
  • 链接: https://blog.xuchengxi.tk/2024/10/19/c⁄c++/cmath说明/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。