在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/)。 –
應該是重複的... –