|
|
1
459
在某些(特别是较旧的)平台上(请参阅下面的注释),您可能需要
然后包括必要的头文件:
pi的值可以通过以下方式访问:
在我的
但是检查一下你的
然而:
|
|
2
161
pi可计算为
|
|
|
3
104
您还可以使用Boost,它为所请求的类型(即float与double)定义具有最大精度的重要数学常量。
查看 boost documentation 更多示例。 |
|
|
4
59
从芯片上的FPU单元获取:
|
|
5
46
我建议您按需要的精度输入pi。这不会给您的执行增加任何计算时间,并且可以在不使用任何头或定义的情况下进行移植。计算acos或atan总是比使用预先计算的值更昂贵。
|
|
6
41
而不是写作
我建议使用
这样,您就可以确保,即使在执行此操作之前有人包括头文件(并且没有定义),您仍将拥有常量,而不是一个模糊的编译器错误,您需要花费很多时间来跟踪。 |
|
|
7
37
因为官方标准库没有定义常量pi,所以您必须自己定义它。所以你的问题的答案是,“我怎样才能得到圆周率而不需要手动定义?”是“您不需要——或者您依赖于某些特定于编译器的扩展”。如果您不关心可移植性,您可以查看编译器的手册。 C++允许你编写
但是这个常量的初始化并不能保证是静态的。然而,G++编译器将这些数学函数作为内部函数来处理,并且能够在编译时计算这个常量表达式。 |
|
|
8
28
|
|
|
9
24
标准C++对PI没有常数。
许多C++编译器定义
|
|
|
10
13
我愿意
或
我愿意
不
按您需要的精度键入
. 这到底是什么意思?这个
你需要的精确性
是的精度
你可以说:
你在说什么?
但是你真的知道标准中不会有一个新的浮点类型,它的精度比
这就是为什么第一个解决方案是漂亮的。您可以非常肯定,对于一个新类型,该标准将重载三角函数。 请不要说初始化时对三角函数的评估是一种性能损失。 |
|
|
11
8
我通常喜欢定义自己的:
这个函数是在运行时被调用,还是在编译时被静态调用,这通常不是一个问题,因为它无论如何只发生一次。 |
|
12
8
我在项目中的一个常见标题中使用了以下内容,该标题涵盖了所有基础:
附带说明的是,下面的所有编译器都定义m_pi和m_pil常量,如果您包括
|
|
|
13
5
我刚遇到 this article 通过 Danny Kalev 对于C++ 14和UP有很好的提示。
我觉得这很酷(尽管我会使用那里最高精度的pi),尤其是因为模板可以基于类型使用它。
|
|
|
14
2
在Windows(cygwin+g++)上,我发现有必要添加标志
|
|
|
15
2
C++ 14让你做
|
|
|
16
2
像MyPI、MyPix2、MyPIY4等的值不是标准的C++,所以SCONExPR似乎是一个更好的解决方案。不同的常量表达式可以用来计算相同的圆周率,这关系到它们(全部)是否能提供完全的精度。C++标准没有明确提到如何计算PI。因此,我倾向于回到手工定义pi。我想分享下面的解决方案,它支持圆周率的所有分数的完全精度。
|
|
|
17
1
您可以这样做:
如果
pi的这个值来自qt creator的qmath.h。 |
|
Fyodor · 在C中使用sin和cos计算数学表达式不正确? 1 年前 |
|
Cjmarkham · 基于已知斜边和相邻的[闭合]获得θ 1 年前 |
|
|
Quiche31 · 符号反三角函数并不总是返回期望的分数 2 年前 |
|
|
Jack Wild · 三名JS直接在摄像机前获得地面位置 8 年前 |
|
|
urukh · Arduino波发生器 8 年前 |
|
|
Michael K. · 如何以java度求反余弦 8 年前 |