Если у меня есть переменная типа float и вы хотите получить результат с 3 цифрами после десятичной точки, используйте iostream в С++. Как я могу это сделать?
C + + поток с 3 цифрами после десятичной точки. Как?
Ответ 1
#include <iostream>
using namespace std;
int main () {
double f = 3.14159;
cout.setf(ios::fixed,ios::floatfield);
cout.precision(3);
cout << f << endl;
return 0;
}
Отпечатает 3.142
Ответ 2
Это показывает "13.141"
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
double f = 13.14159;
cout << fixed;
cout << setprecision(3) << f << endl;
return 0;
}
Ответ 3
Вы можете получить фиксированное количество дробных цифр (и многое другое), используя заголовок 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