这个问题已经在这里有了答案: > How do I print a double value with full precision using cout? 11个
我试图在程序中使用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
我该如何解决这个问题?
解决方法:
像这样:
#include <iomanip>
#include <iostream>
std::cout << std::setw(15) << pi_18 << std::endl;
宽度修饰符仅影响下一个格式化操作,因此,如果要格式化多个数字,则必须在每个数字之前重复此操作.查看the full documentation的格式说明符.