2015-08-31 2 views
0

Мне нужно, чтобы мой cout имеют две цифры после десятичной точки, т.е .:Установка десятичной точки с помощью #iostream

значение: 2,3 стать: 2,30. Я нашел некоторые решения, используя iomanip и т. Д.

Однако мне нужен простой способ сделать это только с iostream.

centage = (abc/ cdf)*100; 
cout << "total is "<<abc<<" of "<<cdf<<", or "<<centage <<"%"; 
+2

'соиЬ << setprecision (2) << Исправлено [ – erip

+0

Возможный дубликат [Как напечатать двойное значение с полной точностью с помощью cout?] (http://stackoverflow.com/questions/554063/how-do-i-print-a-double- value-with-full-precision-using-cout) – 7VoltCrayon

+0

@erip Требуется, чтобы iomanip и OP, по-видимому, действительно пытались усердствовать над собой. – user4581301

ответ

2

Просто используйте stream manipulators:

cout << setprecision(2) << fixed << centage; 

Который покажет 2 цифры после запятой, как в fixed обозначениях манипулятором setprecision() указывает количество цифр после десятичной точки.

Я сомневаюсь, что только iostream обеспечивает прямое оснащение с десятичной точностью. Итак, по моему мнению, нет более простого способа, кроме уже предоставленных манипуляторов.

Другое неортодоксальное решение состоит в том, чтобы что-то делать с использованием строковых манипуляций, где, например, вы можете преобразовать в строку и объединить некоторые (бессмысленные) 0 до получения желаемой «точности» и вернуть результат в виде строки.

3

манипулятор std::setprecision() просто удобен для установки точности вместе с другими выходами. Вы можете установить точность непосредственно на потоке, тоже:

std::cout.precision(2); 
0

здесь используется только iostream, но вместо cout использования printf так:

printf("%.2f\n", centage); 
Смежные вопросы