使用哪些"math.h"定义来计算数学方程式



所以我想计算出一些等式,比如使用π/π的圆的周长。环顾四周,发现我需要使用

#define _USE_MATH_DEFINES  
#include "math.h"

and
M_2_PI //presumably

但我很难弄清楚如何将其拼凑在一起,因为π不存在,而且你不能在计算器上做一行简单的运算。如果我的半径输入是"0";r〃;并且我尝试使用类似于x=M_2_PI*r的东西;我会得到接近的结果,但数学上接近是不够的。

VS内部是否有一些指令或指导方针可以更好地工作?

如果我的半径输入是r,并且我尝试使用类似x = M_2_PI * r的东西;我会得到接近的结果,但数学上接近是不够的。

在几乎所有非数学编程语言中,对内部数类型的算术运算总是只能给出近似结果,因为整数类型和IEE-754浮点数就是这样工作的。没有(简单的(方法可以绕过它。

(例如,虽然您可以使用Rational类型(如boost::rational]2(来精确表示分数值的,但这种方法不适用于像Pi这样的无理数(。

如果您想要一个 精确的 答案,请不要使用C,而是使用一个专为高级数学设计的系统,该系统知道如何表示准确的值,并对数学表达式而不是近似数值进行运算-这些系统被称为CAS(计算机代数系统(,如Wolfram Mathematica。请注意,不应将CAS系统与非符号数字系统混淆,如MatlabMathcad(尽管在某种程度上,几乎每个数学系统都能进行符号和数字运算(。

(我感谢Mathematica帮助我完成了A2 Pure和FP课程(。德州仪器还销售一系列手持CAS计算器(我有一台nSpire CAS(,可以预见,这些计算器被禁止用于大多数高级和本科考试(。

最新更新