double a_0_d = 2 * sqrt(3);
double b_0_d = 3;
double ak_d = 0, bk_d = 0;
while ((a_0_d-b_0_d) != 0) {
ak_d = a_0_d;
bk_d = b_0_d;
a_0_d = (2 * ak_d * bk_d) / (ak_d + bk_d);
b_0_d = sqrt(a_0_d * bk_d);
//cout << a_0_d << " " << b_0_d << endl;
}
pi_double = a_0_d;
cout << "The pi_double value at double precision is = " << pi_double << endl;
输出: 3.14159
我以为double的精度是15位,有没有可能把输出转换成float数据类型?
发布于 2019-09-30 02:06:24
您应该使用std::setprecision
#include <iomanip>
cout << "The pi_double value at double precision is = " << std::setprecision(15) << pi_double << endl;
在godbolt上直播
https://stackoverflow.com/questions/58157842
复制相似问题