如何在C/C++中使用pi (π) 值

2023-05-16

在math.h有一个宏定义M_PI

#if defined _USE_MATH_DEFINES && !defined _MATH_DEFINES_DEFINED
    #define _MATH_DEFINES_DEFINED
    // Definitions of useful mathematical constants
    //
    // Define _USE_MATH_DEFINES before including <math.h> to expose these macro
    // definitions for common math constants.  These are placed under an #ifdef
    // since these commonly-defined names are not part of the C or C++ standards
    #define M_E        2.71828182845904523536   // e
    #define M_LOG2E    1.44269504088896340736   // log2(e)
    #define M_LOG10E   0.434294481903251827651  // log10(e)
    #define M_LN2      0.693147180559945309417  // ln(2)
    #define M_LN10     2.30258509299404568402   // ln(10)
    #define M_PI       3.14159265358979323846   // pi
    #define M_PI_2     1.57079632679489661923   // pi/2
    #define M_PI_4     0.785398163397448309616  // pi/4
    #define M_1_PI     0.318309886183790671538  // 1/pi
    #define M_2_PI     0.636619772367581343076  // 2/pi
    #define M_2_SQRTPI 1.12837916709551257390   // 2/sqrt(pi)
    #define M_SQRT2    1.41421356237309504880   // sqrt(2)
    #define M_SQRT1_2  0.707106781186547524401  // 1/sqrt(2)
#endif

但是在math.h中默认并没有定义_USE_MATH_DEFINES,因此如果需要使用M_PI的话需要在引用Math.h前先定义_USE_MATH_DEFINES

例:

#include <iostream>
#define _USE_MATH_DEFINES
#include <math.h>


using namespace std;


void main()
{
	cout << M_PI << endl;
}

当然如果不想这样麻烦的可以自己直接在文件中对pi进行宏定义

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在C/C++中使用pi (π) 值 的相关文章

  • 鲁棒控制——以静制动

    当今的自动控制技术都是基于反馈的概念 反馈理论的要素包括三个部分 xff1a 测量 比较和执行 测量关心的变量 xff0c 与期望值相比较 xff0c 用这个误差纠正调节控 制系统的响应 这个理论和应用自动控制的关键是 xff0c 做出正确
  • 自学电子技术的几个“要”

    学习电子技术 xff0c 基础构筑一定要牢靠 就说读图 xff0c 不能出错 xff0c 还要速度快 xff0c 要习惯成自然 检测元器件 xff0c 要坚持理论指导实践 xff0c 如测三极管 xff0c 理解了输入特性曲线及不同工作点在
  • 巧妙理解电气基础理论

    一 电与水相联系 电是看不见 摸不着 低压 的 xff0c 要想掌握它的特性 xff0c 全靠资料上的介绍和自己的想象 xff0c 确实难于理解 水是我们非常熟悉的 xff0c 它既看得见 xff0c 也模得着 xff0c 人们每天都离不开
  • 我们身边的人工智能应用

    人工智能是在计算机科学 控制论 信息论 心理学 语言学等多种学科相互渗透的基础发展起来的一门新兴边缘学科 xff0c 主要研究用用机器 xff08 主要是计算机 xff09 来模仿和实现人类的智能行为 xff0c 经过几十年的发展 xff0
  • C++资源之不完全导引

    C 43 43 资源之不完全导引作者 xff1a 曾毅 陶文 文章来源 xff1a csdn 点击数 xff1a lt script language 61 34 javascript 34 src 61 34 Article GetHit
  • 揭开C/C++中数组形参的迷雾

    揭开C C 43 43 中数组形参的迷雾作者 xff1a 乾坤一笑 文章来源 xff1a 本站原创 点击数 xff1a lt script language 61 34 javascript 34 src 61 34 Article Get
  • 瑞芯微rk1126 编译mp4v2记录 rk1126移植 ffmpeg X264

    项目需求需要录像存储为mp4文件 并且要支持H264 H265 我们之前在海思平台上用的是mp4v2 想着直接拿过来用 从github上 下载完mp4v2之后 新建一个build文件夹 然后cd到build文件夹新建一个build sh内容
  • 郁闷

    01 面对忧郁要处之泰然 xff0c 因为悲伤是必经的常态 02 找些事情做 xff0c 转移注意力 xff0c 例如散步 下棋 骑脚踏车 阅读等 03 从记忆中寻找快乐 04 找朋友顷诉 xff0c 加以发泄 05 大哭一场 xff0c
  • 2.14 STM32 串口传输最佳处理方式 FreeRTOS+队列+DMA+IDLE (二)

    紧接着上一篇文章 如何合理处理多个串口接收大量数据 此种方法 很厉害 很NB 首先 利用DMA 可节省大量CUP资源 其次 利用IDLE空闲中断来接收位置个数的数据 最后利用串口DMA环形数据的偏移量 长度 入队 出队处理数据 保证了任务的
  • 无人机/无人车仿真软件学习与实践---序言

    之前读博的时候一直使用团队自主设计的无人车在路上做实验 xff0c 验证感知代码时则使用公开数据集和车上实时录制的bag包进行 xff0c 对仿真器的掌握程度一直存在于听说有这么一个东西的程度 毕业之后 xff0c 新加入的团队主要搞的是无
  • stm32 nucleo f746zg串口中断接受数据入门

    使用串口1 将rx和tx对接 使用串口3 通过pc 来打印信息 main中的函数为 xff1a span class token function HAL UART Receive IT span span class token punc
  • stm32 hal iwip EchoClient demo 使用

    tcp echoclient c span class token comment 64 file LwIP LwIP TCP Echo Client Src tcp echoclient c 64 author MCD Applicati
  • esp32点灯程序

    使用的pin为D23 span class token macro property span class token directive hash span span class token directive keyword inclu
  • esp32串口发送

    串口2 xff0c rx 16 和 tx 17 span class token macro property span class token directive hash span span class token directive
  • esp32串口收发echo

    span class token comment SPDX FileCopyrightText 2010 2022 Espressif Systems Shanghai CO LTD SPDX License Identifier CC0
  • esp32定时器timer 代码

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • 瑞芯微RK1126平台 用FFmpeg 将H264 H265视频流保存为MP4文件

    之前尝试ffmpeg保存MP4文件没有成功 今天周末没事 尝试了下 解决这个问题了 主要是打开文件设置encoder和 发送数据时候 pts的设置 nbsp 打开文件的地方 pHandle gt is record ready store
  • esp32 连接wifi ap热点代码

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • esp32 tcp socket客户端收发代码

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • esp32 event loop handle 代码

    span class token macro property span class token directive hash span span class token directive keyword include span spa

随机推荐

  • esp32 ble gatt server创建多个Characteristic

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • freertos入门之创建Task

    基于esp32平台 span class token macro property span class token directive hash span span class token directive keyword includ
  • freertos入门之queue

    基于esp32 平台 参考 xff1a https www freertos org fr content src uploads 2018 07 161204 Mastering the FreeRTOS Real Time Kernel
  • freertos入门之binary semaphore

    基于esp32 平台 参考 xff1a https www freertos org fr content src uploads 2018 07 161204 Mastering the FreeRTOS Real Time Kernel
  • freertos入门之EventGroup

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • freertos入门之Timer

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • freertos入门之StreamBuffer

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • 设置cpp-httplib 服务器模式模式下的线程池大小 以及如何增加默认处理函数 以便能够实现http请求转发

    先说说默认的创建的线程池数量 原因是某天调试在gdb调试下 一启动程序发现 开启了好多线程 如下图 因为我们程序 没几个线程 数了下 居然有60多个线程 不需要那么多 所以看下 httplib的源码 构造函数的时候 设置了最大线程池数量 看
  • freertos入门之StreamBuffer

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • arduino-esp32 入门之wifi连接热点

    参考 xff1a https github com espressif arduino esp32 blob master libraries WiFi examples WiFiClient WiFiClient ino span cla
  • esp32-arduino入门之点亮led

    参考 xff1a https learncplusplus org how to program arduino with c span class token macro property span class token directi
  • stm32 学习资料汇总

    外设库以及example xff1a Google 搜索 STM32 Standard Peripheral Libraries
  • HttpClient学习研究---第四章:HTTP authenticationHTTP身份验证

    第四章 HTTP authentication HTTP身份验证 HttpClient provides full support for authentication schemes defined by the HTTP standar
  • Linux系统下常用的3个网络测试工具!

    在Linux系统中 xff0c 有很多用于管理和监测网络连接的命令 xff0c 其中ping traceroute和nslookup是比较常用的网络命令 xff0c 可以用来测试网络 诊断网络故障等等 xff0c 以下是详细的内容 xff1
  • TCP.02.SELECT模型

    文章目录 SELECT模型简介SELECT模型流程SELECT原理SELECT代码实现fd set 数组及基本操作SELECT函数参数2 xff08 重点 xff09 参数3参数4 关闭所有SOCKET句柄处理控制台窗口关闭事件整体代码思考
  • Node.js http 模块详解:request 对象

    前言 前文介绍了 http 模块的基本用法 xff0c 主要就是调用 createServer 和 listen 方法来创建和启动服务 要处理具体的 HTTP 请求 xff0c 就要在 createServer 方法中写点什么 本文来介绍处
  • 如何确认串口波特率

    文章目录 1 盲扫一遍2 示波器测量1bit时间3 逻辑分析仪确认 背景 xff1a 手上有一个模块使用串口通信但是不知道其波特率 xff0c 如何确认它的波特率呢 xff1f 1 盲扫一遍 波特率有常用的配置9600 115200 230
  • curl命令常用参数

    curl命令常用参数 curl简介常用方法将远程文件下载到本地 o并指定名称指定请求方式 X显示响应结果 v携带用户名 密码 u携带请求头 H查看服务端响应头 i只显示http response的头信息 I自动跳转 L模拟dns解析 res
  • 学习ZLmediaKit流媒体服务器时候遇到的问题

    照zlmediakit的源码 自己复制了一份 然后有的地方编译不过修改了部分 测试的时候发现有两个问题 第一是 ffmpeg的ffplay 能播放 vlc不能播放 第二个问题是directProxy设置为0的时候 推流的时候 然后用ffpl
  • 如何在C/C++中使用pi (π) 值

    在math h有一个宏定义M PI if defined USE MATH DEFINES amp amp defined MATH DEFINES DEFINED define MATH DEFINES DEFINED Definitio