Бьерн Страуструп - Язык программирования С++. Главы 9-10
Страница 34. Вывод плавающих чисел



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

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

       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, предлагают
более элегантный способ задания формата вывода вещественных.

 
« Предыдущая статья   Следующая статья »