Выведите число X после десятичной точки, используя cout

У меня есть этот код:

double a = 7.456789;
cout.unsetf(ios::floatfield);
cout.precision(5);
cout << a;

а также этот:

double a = 798456.6;
cout.unsetf(ios::floatfield);
cout.precision(5);
cout << a;

результат первого кода: 7.4568 Это почти то, что я хочу (то, что я хочу получить, это 7.4567) результат второго: 7.9846e+05, который совсем не то, что я хочу (я хочу 798456.6), я хочу вывести число до 4 чисел после запятой

Как я могу это сделать?

1 ответ

Используя unsetf()вы говорите cout использовать форматирование по умолчанию для значений с плавающей точкой. Поскольку вы хотите точное количество цифр после десятичной дроби, вы должны использовать setf(fixed) или же std::fixed вместо этого, например:

double a = ...;
std::cout.setf(std::fixed, ios::floatfield);
std::cout.precision(5);
std::cout << a;

,

double a = ...;
std::cout.precision(5);
std::cout << std::fixed << a;
Другие вопросы по тегам