Язык программирования C++ для профессионалов



           

Вывод плавающих чисел


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

cout.setf(ios::scientific,ios::floatfield); cout.setf(ios::fixed,ios::floatfield); cout.setf(0,ios::floatfield); // вернуться к стандартному

установят вид печати вещественных чисел без изменения других компонентов состояния потока.

Например:

cout << 1234.56789 << '\n';

cout.setf(ios::scientific,ios::floatfield); cout << 1234.56789 << '\n';

cout.setf(ios::fixed,ios::floatfield); cout << 1234.56789 << '\n';

напечатает

1234.57 1.234568e+03 1234.567890

После точки печатается n цифр, как задается в обращении

cout.precision(n)

По умолчанию n равно 6. Вызов функции precision влияет на все операции ввода-вывода с вещественными до следующего обращения к precision, поэтому

cout.precision(8); cout << 1234.56789 << '\n'; cout << 1234.56789 << '\n';

cout.precision(4); cout << 1234.56789 << '\n'; cout << 1234.56789 << '\n';

выдаст

1234.5679 1234.5679 1235 1235

Заметьте, что происходит округление, а не отбрасывание дробной части.

Стандартные манипуляторы, введенные в §10.4.2.1, предлагают более элегантный способ задания формата вывода вещественных.




Содержание  Назад  Вперед