В C++ функция setprecision()используется для управления точностью чисел с плавающей запятой при их печати или преобразовании в строки. Вот несколько методов, которые вы можете использовать с setprecision()для чисел с плавающей запятой:
- Использование
setprecision()сstd::cout: вы можете использовать функциюstd::setprecision()из Заголовокдля установки точности чисел с плавающей запятой при их печати на консоль с помощьюstd::cout. Вот пример:
#include <iostream>
#include <iomanip>
int main() {
float f = 3.14159f;
double d = 2.71828;
std::cout << std::setprecision(4) << f << std::endl;
std::cout << std::setprecision(8) << d << std::endl;
return 0;
}
Выход:
3.142
2.71828
- Использование
setprecision()сstd::ostringstream: вы также можете использоватьsetprecision()сstd::ostringstreamдля преобразования чисел с плавающей запятой в строки с определенной точностью. Вот пример:
#include <iostream>
#include <iomanip>
#include <sstream>
int main() {
float f = 3.14159f;
double d = 2.71828;
std::ostringstream oss;
oss << std::setprecision(4) << f;
std::string fString = oss.str();
oss.str("");
oss << std::setprecision(8) << d;
std::string dString = oss.str();
std::cout << fString << std::endl;
std::cout << dString << std::endl;
return 0;
}
Выход:
3.142
2.71828
- Использование манипуляторов
std::fixedиstd::scientific: в дополнение кsetprecision()вы также можете использоватьманипуляторы std::fixedиstd::scientificдля управления форматом чисел с плавающей запятой.std::fixedустанавливает формат записи с фиксированной точкой, аstd::scientificустанавливает формат научной записи. Вот пример:
#include <iostream>
#include <iomanip>
int main() {
float f = 3.14159f;
double d = 2.71828;
std::cout << std::fixed << std::setprecision(2) << f << std::endl;
std::cout << std::scientific << std::setprecision(4) << d << std::endl;
return 0;
}
Выход:
3.14
2.7183e+00