2015-04-22 3 views
3

Когда соиЬ-ки числа с плавающей точкой, т.е. 31.14159, как я могу установить COUT использовать setprecision (4) на плавающей точкой:Как использовать setprecision в CPP только для числа с плавающей точек

cout <<setprecision(4)<< 31.14159<<endl; // returns 31.14 

As-is, он рассматривает все число с десятичными цифрами и выдает: 31.14. Однако я хочу получить: 31.1416.

+0

Возможный дубликат [Печать правильного количества десятичных точек с помощью cout] (http://stackoverflow.com/questions/5907031/printing-the-correct-number-of-decimal-points-with-cout) –

ответ

5

std :: fixed говорит, что после десятичной точки будет фиксированное число десятичных цифр.

std::cout << std::setprecision(4) << std::fixed << 31.14159; 

- это напечатает 31.1416

+0

I пытался понять «setprecision», добавив 2 удвоения, добавив «0» в десятичную часть. и ответ, напечатанный с использованием «cout << setprecision (2)» без добавления «std :: fixed», привел к непечатанию десятичной части ответа ... Можете ли вы объяснить, почему это произошло – Anuj

1

Вы можете использовать std::fixed

std::cout << std::fixed << std::setprecision(4) << 31.14159 << endl ; 

и вы получите выход в 31.1416

При добавлении std::fixed, то std::setprecision(4) вступит в силу на десятичной части, и таким образом вы получите 4 значений после десятичной точки.

A std::setprecision() вступит в силу для всего числа. Но когда вы добавите std::fixed вместе с ним, то std::setprecision() произведет эффект только десятичной части числа.

+0

Я пытался понять «setprecision 'добавив 2 удвоения, добавление в десятичной части было «0». и ответ, напечатанный с использованием 'cout << setprecision (2)' без добавления 'std :: fixed', привел к тому, что не печаталась десятичная часть ответа ... Можете ли вы объяснить, почему это произошло – Anuj