C++ 如何在C+中写入小数点后的2位数字+;?
在C语言中,我们可以这样写C++ 如何在C+中写入小数点后的2位数字+;?,c++,c,floating-point,double,C++,C,Floating Point,Double,在C语言中,我们可以这样写 printf("%.2f", number); 如何在C++中实现这一点?< /P> std::cout << "The number is " << number; std::cout您需要使用iomanip工具,例如: #include <iostream> #include <iomanip> int main() { double pi = 3.141592653589; std::cout
printf("%.2f", number);
如何在C++中实现这一点?< /P>
std::cout << "The number is " << number;
std::cout您需要使用iomanip
工具,例如:
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
return 0;
}
如果您想定位更改的影响(无论是fixed
还是setprecision
永久更改流),您可以先保存标志和精度,然后再恢复:
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << pi << '\n';
// Save flags/precision.
std::ios_base::fmtflags oldflags = std::cout.flags();
std::streamsize oldprecision = std::cout.precision();
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
std::cout << pi << '\n';
// Restore flags/precision.
std::cout.flags (oldflags);
std::cout.precision (oldprecision);
std::cout << pi << '\n';
return 0;
}
显示正在恢复以前的行为。您需要使用iomanip
功能,例如:
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
return 0;
}
如果您想定位更改的影响(无论是fixed
还是setprecision
永久更改流),您可以先保存标志和精度,然后再恢复:
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << pi << '\n';
// Save flags/precision.
std::ios_base::fmtflags oldflags = std::cout.flags();
std::streamsize oldprecision = std::cout.precision();
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
std::cout << pi << '\n';
// Restore flags/precision.
std::cout.flags (oldflags);
std::cout.precision (oldprecision);
std::cout << pi << '\n';
return 0;
}
显示正在恢复以前的行为。。应该是重复的…应该是重复的…感谢您的回答有一件事需要注意:std::setprecision(2)
更改std::cout
的状态,因此它会影响以后打印的任何浮点值。@Keith,说得好。虽然它可能不一定直接适用于这个问题,但我会提到它并提供一个解决方法。谢谢你的回答有一件事需要注意:std::setprecision(2)
更改std::cout
的状态,因此它会影响以后打印的任何浮点值。@Keith,说得好。虽然它可能不一定直接适用于这个问题,但我会提到它并提供一个解决方法。