Выведите число 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;