1

我试图在我的程序中使用 long double 类型来打印出更多的 pi 数字。但它只显示 5 位小数。

这是我的代码。

int main(int argc, char** argv) {

    long double pi_18 = acos(static_cast<long double>(-1));
    cout << "pi to 18:" << pi_18 << endl;

    return 0;
}

这是我的输出:

pi to 18: 3.14159

我该如何解决这个问题?

4

2 回答 2

2

像这样:

#include <iomanip>
#include <iostream>

std::cout << std::setw(15) << pi_18 << std::endl;

宽度修饰符只影响下一次格式化操作,所以如果要格式化多个数字,就得在每一个之前都重复一遍。查看格式说明符的完整文档

于 2013-09-23T22:18:53.330 回答
1

您可以使用精度方法:

cout.precision(15);

这允许您只定义一次精度。您不必像 std::setw() 那样重复它

有关更多信息,请参阅: http ://en.cppreference.com/w/cpp/io/ios_base/precision

于 2013-09-23T22:29:57.113 回答