C++ 如何打印周期数而不舍入到n位小数?

C++ 如何打印周期数而不舍入到n位小数?,c++,c,printing,C++,C,Printing,假设x=2/3,n=10 然后我想打印: .6666(10个六,因为n是10) 而不是 .666 7C: C++: double-foo=2.0/3.0; 标准::cout 张贴你的代码,看到这不是一个家庭问题…那么你的代码是从哪里得到这个罕见的格式化问题从这里看到:我只是建议你,如果你提出这样的问题,大多数人会认为这是一些作业/作业。如果您发布的代码显示了您的努力,您将得到比预期更好的答案,并且格式与代码链接。如果使用%f,它将生成6个小数位数,%.2f将生成2个小数位数。不同的用法会产生不同

假设x=2/3,n=10

然后我想打印: .6666(10个六,因为n是10)

而不是 .666 7C:

C++:

double-foo=2.0/3.0;
标准::cout

张贴你的代码,看到这不是一个家庭问题…那么你的代码是从哪里得到这个罕见的格式化问题从这里看到:我只是建议你,如果你提出这样的问题,大多数人会认为这是一些作业/作业。如果您发布的代码显示了您的努力,您将得到比预期更好的答案,并且格式与代码链接。如果使用%f,它将生成6个小数位数,%.2f将生成2个小数位数。不同的用法会产生不同的结果。至少如果我们知道您使用的是哪种格式,我们可能会提出一些替代方案。@LayGonzález Yay。对于地板,
#包括
。但这很容易被Google发现。我使用C++也有同样的问题。我使用了这个解决方案,但它看起来仍然是四舍五入的。我的值是唯一的,2.88496。我想让它显示2.884,但是9轮到5轮,再加上一个精度将9轮到10轮,这使得4也变成了5。对于这样的值,有什么解决方案吗?
double foo = 2.0 / 3.0;
printf("%.10f", floor(foo * pow(10, 10)) / pow(10, 10));
double foo = 2.0 / 3.0;
std::cout
    << std::fixed
    << std::setprecision(10)
    << std::floor(foo * std::pow(10.0, 10.0)) / std::pow(10.0, 10.0);