У меня есть этот код:
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 чисел после запятой
Как я могу это сделать ?
Используя 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;
Других решений пока нет …