Числа с плавающей запятой в C++: форматирование с помощью setprecision()

В C++ функция setprecision()используется для управления точностью чисел с плавающей запятой при их печати или преобразовании в строки. Вот несколько методов, которые вы можете использовать с setprecision()для чисел с плавающей запятой:

  1. Использование 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
  1. Использование 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
  1. Использование манипуляторов 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