C 标准库 - <math.h>详解

简介: `<math.h>` 是 C 标准库中的头文件,提供了丰富的数学计算函数和常量。重要常量包括自然常数 `M_E` 和圆周率 `M_PI`。常用函数涵盖指数、对数、幂、平方根、三角及反三角函数等,如 `exp`、`log`、`pow`、`sqrt`、`sin`、`cos` 等。

<math.h> 是 C 标准库中的头文件,提供了一系列用于数学计算的函数和常量。以下是该头文件的详细介绍,包括常用的函数、宏以及其使用方式。

重要常量

  • M_E: 自然常数 ( e ) 的值(约为 2.71828)。
  • M_PI: 圆周率 ( \pi ) 的值(约为 3.14159)。

常用函数

以下是一些常用的数学函数,它们通常接受 double 类型的参数,并返回 double 类型的结果:

  1. 指数和对数函数

    • double exp(double x);
      • 计算 ( e^x ) 的值。
    • double log(double x);
      • 计算自然对数(以 ( e ) 为底)的值。如果需要计算以 10 为底的对数,可使用 log10
    • double log10(double x);
      • 计算以 10 为底的对数。
  2. 幂和平方根函数

    • double pow(double x, double y);
      • 计算 ( x^y ) 的值。
    • double sqrt(double x);
      • 计算 ( x ) 的平方根。
  3. 三角函数

    • double sin(double x);
    • double cos(double x);
    • double tan(double x);
    • double asin(double x);
    • double acos(double x);
    • double atan(double x);
  4. 反三角函数

    • double atan2(double y, double x);
      • 计算从 ( x ) 轴到点 ( (x, y) ) 的角度。
  5. 其他数学函数

    • double ceil(double x);
      • 返回大于或等于 ( x ) 的最小整数值。
    • double floor(double x);
      • 返回小于或等于 ( x ) 的最大整数值。
    • double round(double x);
      • 返回四舍五入后的整数值。
    • double fabs(double x);
      • 计算 ( x ) 的绝对值。

示例

下面是一个使用 <math.h> 的简单示例,演示了如何使用一些基本的数学函数:

#include <stdio.h>
#include <math.h>

int main() {
   
    double x = 2.0;
    double y = 3.0;

    printf("exp(%f) = %f\n", x, exp(x));
    printf("log(%f) = %f\n", x, log(x));
    printf("pow(%f, %f) = %f\n", x, y, pow(x, y));
    printf("sqrt(%f) = %f\n", x, sqrt(x));
    printf("sin(%f) = %f\n", x, sin(x));
    printf("cos(%f) = %f\n", x, cos(x));
    printf("tan(%f) = %f\n", x, tan(x));

    return 0;
}

注意事项

  • 在使用 <math.h> 中的函数时,如果参数是负数(例如对数和平方根函数),它们的结果是未定义的,通常会返回 NaN(不是一个数字)。
  • 数学函数通常会采用弧度制进行计算,因此在使用三角函数时需要确保输入的角度是以弧度为单位。
  • 某些平台对高精度数学计算有额外的实现和限制,使用时需注意。

结论

<math.h> 提供了一整套便捷的数学计算功能,是 C 编程中不可或缺的工具之一。在编写涉及数学运算的程序时,理解和使用这些函数可以大大提高代码的效率和准确性。

相关文章
|
Unix C++
在VS2019中CMake生成出现报错
在VS2019中CMake生成出现报错
2259 0
在VS2019中CMake生成出现报错
|
前端开发 JavaScript UED
页面美化
页面美化
626 2
|
3月前
|
机器学习/深度学习 算法 网络协议
AI算力狂飙背后的秘密:当“稳重老哥”Gloo遇上“极速引擎”NCCL
本文深度解析AI大模型训练中两大核心通信后端——Gloo与NCCL:前者是跨平台、高兼容的“稳健使者”,适配CPU及普通网络;后者是NVIDIA定制的“性能怪兽”,依托NVLink/RDMA实现GPU间纳秒级同步。文章以AllReduce等通信原语为切入点,对比其架构差异、适用场景与底层原理,并揭示分布式训练中通信瓶颈、拓扑感知、计算-通信重叠等关键工程实践,助开发者穿透框架表层,直抵算力调度本质。(239字)
466 6
|
8月前
|
缓存 数据可视化 定位技术
快递鸟快递API技术指南:获取物流轨迹信息与轨迹地图的解决方案
在当今电商竞争激烈的环境中,物流体验已成为提升用户满意度的关键因素。研究表明,超过 75% 的消费者会因物流信息不透明而放弃下单。
1831 1
|
前端开发 JavaScript Java
计算机java项目|springboot基于spring框架的电影订票系统
计算机java项目|springboot基于spring框架的电影订票系统
375 0
|
机器学习/深度学习 TensorFlow 算法框架/工具
深度学习在图像识别中的应用:一个实战案例
【8月更文挑战第1天】 本文将通过一个实际案例,深入探讨深度学习在图像识别领域的应用。我们将介绍如何利用卷积神经网络(CNN)进行图像分类,并展示一个简单的代码示例。通过本文,您将了解到深度学习技术在解决实际问题中的潜力和挑战。
一文搞懂Go读写Excel文件
一文搞懂Go读写Excel文件
|
Python
pandas库明明安装成功了,为什么总是导入错误?
pandas库明明安装成功了,为什么总是导入错误?
2053 4
|
存储 Serverless Python
`quad()` 函数是 `scipy.integrate` 模块中的一个函数,用于计算一维函数的数值积分。其基本语法如下:
`quad()` 函数是 `scipy.integrate` 模块中的一个函数,用于计算一维函数的数值积分。其基本语法如下:

热门文章

最新文章