相关疑难解决方法(0)

最佳平台独立pi常量?

我知道你可以用:

#define _USE_MATH_DEFINES
Run Code Online (Sandbox Code Playgroud)

然后:

M_PI
Run Code Online (Sandbox Code Playgroud)

得到恒定的pi.但是,如果我没记错的话(欢迎评论)这是依赖于编译器/平台的.那么,当我将它从Linux移植到其他系统时,使用pi常量最可靠的方法是什么,不会导致任何问题?

我知道我可以定义一个float/double然后自己将它设置为舍入的pi值,但我真的想知道是否有指定的机制.

c++ pi

11
推荐指数
1
解决办法
4071
查看次数

Constexpr编译错误使用std :: acos和clang ++而不是g ++

我想尝试将项目从gcc迁移到clang ++.我承认我的无知,我不知道为什么以下的代码

template <typename T>
constexpr T pi{std::acos(T(-1.0))};
Run Code Online (Sandbox Code Playgroud)

使用g ++静默编译但clang ++产生错误

trig.hpp:3:13: error: constexpr variable 'pi<float>' must be initialized by a constant expression
constexpr T pi{std::acos(T(-1.0))};
Run Code Online (Sandbox Code Playgroud)

而且我希望有人比我更了解它,可以启发我.

注意:尝试使用-std = C++ 14和C++ 1y.在clang版本3.6.2(标签/ RELEASE_362/final)下失败.适用于g ++(GCC)5.2.0.

c++ compiler-errors constexpr clang++ c++14

7
推荐指数
1
解决办法
1061
查看次数

在C中将度数转换为弧度时的结果令人困惑

  int x;
  scanf("%d",&x);
  x=(double)((x*3.14)/180);
  printf("%.6lf",x);
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码并输入x = 60时,我得到-0.000000。

  int x;
  double a;
  scanf("%d",&x);
  a=(x*3.14)/180;
  printf("%.6lf",a);
Run Code Online (Sandbox Code Playgroud)

但是当我运行上面的代码时,我得到了正确的答案。

我想知道我在哪里做错了。我的类型转换或使用double或其他任何东西有问题吗?任何帮助将不胜感激。谢谢!

注意:我需要在小数点后最多输出6位数字。

c double

0
推荐指数
1
解决办法
65
查看次数

标签 统计

c++ ×2

c ×1

c++14 ×1

clang++ ×1

compiler-errors ×1

constexpr ×1

double ×1

pi ×1