我知道你可以用:
#define _USE_MATH_DEFINES
Run Code Online (Sandbox Code Playgroud)
然后:
M_PI
Run Code Online (Sandbox Code Playgroud)
得到恒定的pi.但是,如果我没记错的话(欢迎评论)这是依赖于编译器/平台的.那么,当我将它从Linux移植到其他系统时,使用pi常量最可靠的方法是什么,不会导致任何问题?
我知道我可以定义一个float/double然后自己将它设置为舍入的pi值,但我真的想知道是否有指定的机制.
我想尝试将项目从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.
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位数字。