代码链接见:https://wandbox.org/permlink/5jHMyrMd0PWyeP7h
C++20中圆周率和常数e已经进入std了,无需math头文件:
// gcc >=10,
// g++ test.cpp -Wall -Wextra -std=c++2a
#include <iostream>
#include <numbers> //加这个头文件
#include <iomanip>
using namespace std;
int main()
{
std::cout << std::fixed << setprecision(10); // 保留小数点后10位
std::cout << std::numbers::pi << std::endl; // 3.1415926536...
std::cout << std::numbers::e << std::endl; // 2.7182818285...
std::cout << std::numbers::log2e << std::endl;
std::cout << std::numbers::log10e << std::endl;
std::cout << std::numbers::inv_pi << std::endl; // inverse of pi
std::cout << std::numbers::inv_sqrt3 << std::endl; // inverse square root of 3
std::cout << std::numbers::ln2 << std::endl;
std::cout << std::numbers::ln10 << std::endl;
std::cout << std::numbers::sqrt2 << std::endl;
std::cout << std::numbers::sqrt3 << std::endl;
std::cout << std::numbers::egamma << std::endl;
return 0;
}
/*
output:
3.1415926536
2.7182818285
1.4426950409
0.4342944819
0.3183098862
0.5773502692
0.6931471806
2.3025850930
1.4142135624
1.7320508076
0.5772156649
*/