выведите число 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 чисел после запятой

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

0

Решение

Используя 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;
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]