Печать полных двойных чисел без научной записи в C++: методы и примеры

Чтобы напечатать двойное число без экспоненциальной записи в C++, вы можете использовать манипуляторы std::fixedи std::setprecisionиз библиотека. Вот несколько методов с примерами кода:

Метод 1: использование манипуляторов std::fixedи std::setprecision

#include <iostream>
#include <iomanip>
int main() {
    double number = 1234567890.123456789;
    std::cout << std::fixed << std::setprecision(15) << number << std::endl;
    return 0;
}

Метод 2: использование функции printfиз

#include <cstdio>
int main() {
    double number = 1234567890.123456789;
    printf("%.15f\n", number);
    return 0;
}

Метод 3. Использование строкового потока

#include <iostream>
#include <sstream>
#include <iomanip>
int main() {
    double number = 1234567890.123456789;
    std::stringstream ss;
    ss << std::fixed << std::setprecision(15) << number;
    std::cout << ss.str() << std::endl;
    return 0;
}

Метод 4. Использование специальной функции для преобразования двойного значения в строку

#include <iostream>
#include <string>
#include <sstream>
#include <iomanip>
std::string doubleToString(double number, int precision) {
    std::stringstream ss;
    ss << std::fixed << std::setprecision(precision) << number;
    return ss.str();
}
int main() {
    double number = 1234567890.123456789;
    std::cout << doubleToString(number, 15) << std::endl;
    return 0;
}