我知道你可以用:
#define _USE_MATH_DEFINES
然后:
M_PI
得到恒定的pi.但是,如果我没记错的话(欢迎评论)这是依赖于编译器/平台的.那么,当我将它从Linux移植到其他系统时,使用pi常量最可靠的方法是什么,不会导致任何问题?
我知道我可以定义一个float/double然后自己将它设置为舍入的pi值,但我真的想知道是否有指定的机制.
我想尝试将项目从gcc迁移到clang ++.我承认我的无知,我不知道为什么以下的代码
template <typename T>
constexpr T pi{std::acos(T(-1.0))};
使用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))};
而且我希望有人比我更了解它,可以启发我.
注意:尝试使用-std = C++ 14和C++ 1y.在clang版本3.6.2(标签/ RELEASE_362/final)下失败.适用于g ++(GCC)5.2.0.
  int x;
  scanf("%d",&x);
  x=(double)((x*3.14)/180);
  printf("%.6lf",x);
当我运行上面的代码并输入x = 60时,我得到-0.000000。
  int x;
  double a;
  scanf("%d",&x);
  a=(x*3.14)/180;
  printf("%.6lf",a);
但是当我运行上面的代码时,我得到了正确的答案。
我想知道我在哪里做错了。我的类型转换或使用double或其他任何东西有问题吗?任何帮助将不胜感激。谢谢!
注意:我需要在小数点后最多输出6位数字。