Чтобы напечатать двойное число без экспоненциальной записи в 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;
}