Вы можете получить фиксированное количество дробных цифр (и многих других), используя заголовок 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