在C语言中,我们可以这样写;如何在C++中写入小数点后的2位数字?
printf("%.2f", number);
我该如何在C++中做到这一点?
std::cout << "The number is " << number;
在C语言中,我们可以这样写;如何在C++中写入小数点后的2位数字?
printf("%.2f", number);
我该如何在C++中做到这一点?
std::cout << "The number is " << number;
您需要使用iomanip
的东西,比如有:
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
return 0;
}
,输出:
3.14
如果要本地化的更改(包括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;
}
的输出是:
3.14159
3.14
3.14
3.14159
表示以前的行为正在恢复。
http://en.cppreference.com/w/cpp/io/manip – chris
[检查此示例](http://www.cplusplus.com/reference/iomanip/setprecision/)。 –
应该是重复的... –