Ввод вещественных чисел
Ввести несколько вещественных переменных из стандартного входного потока (обычно с клавиатуры) и записать их в переменные можно с использованием
cin
:
double x, y;
cin >> x >> y;
Оператор
>>
используется для извлечения данных из потока ввода
cin
. Первое число будет сохранено в переменную
x
, второе - в
y
. Числа можно вводить с клавиатуры как в одну строку через пробел, так и каждое на отдельной строке. Оператор
<<
определен (перегружен) для работы с разными типами данных.
Вывод вещественных чисел
Для вывода данных на экран (консоль) используется cout
. Оператор <<
позволяет направлять данные в стандартный поток вывода cout
(обычно на консоль).
Оператор <<
определен (перегружен) для работы с разными типами данных.
По умолчанию, при выводе вещественных чисел с помощью cout
, используются правила округления, определенные стандартом языка C++. Обычно используется округление до ближайшего значащего разряда (round-to-nearest). Если десятичная часть числа находится на середине между двумя возможными округлениями, то округление происходит к четному значению (так называемое "банковское округление"). Например:
#include <iostream>
using namespace std;
int main()
{
cout << 3.123445 << endl; # выведет 3.12344 (endl - переводит курсор на новую строку)
cout << 3.14159 << endl; # выведет 3.14159
cout << 123457.5 << endl; # выведет 123458
cout << 12345678.9 << endl; # выведет 1.23457e+07
cout << 0.000000123456 << endl; # выведет 1.23456e-07
return 0;
}
Вещественное числа могут быть выведены как числа с фиксированной точностью (первые три числа из примера выше) и как число с плавающей точкой (четвертое и пятое числа из примера).
Если в записи числа много цифр, то cout
выводит только 6 цифр. Если число очень большое (больше 6 цифр в целой части) или очень маленькое (как пятое число из примера), то оно будет выведено в формате с плавающей точкой (в научном формате).
Форматом вывода вещественных чисел можно манипулировать, используя различные манипуляторы. Используя различные комбинации манипуляторов и функций форматирования, можно настроить вывод вещественных чисел в C++ в соответствии с нужными требованиями. Чтобы работать с манипуляторами необходимо подключить библиотеку iomanip
.
Наиболее часто используемые манипуляторы вывода:
1. fixed
: Этот манипулятор выводит числа с фиксированной точностью после десятичной точки (выводит по умолчанию 6 знаков после запятой).
double number = 3.1415987;
cout << fixed << number << endl; # 3.141599
2.
scientific
: Этот манипулятор выводит числа в экспоненциальной форме (научном формате, формате с плавающей точкой).
double number = 1234.56789;
cout << scientific << number << endl; # 1.234568e+03
3.
setprecision(n)
: Этот манипулятор устанавливает точность вывода чисел на
n
знаков после десятичной точки.
double number = 3.14159;
cout << fixed << setprecision(2) << number << endl; # 3.14
4.
setw(n)
и
left
: Эти манипуляторы позволяют установить ширину поля вывода и выравнивание (в данном случае, влево).
double number = 123.456;
cout << setw(10) << left << number << endl; # 123.456___
Пример
#include <iomanip> ...
double x = 1.0/6;
cout << fixed << setprecision (9);
cout << setw(12) << x << endl;
Фрагмент программы выведет
_0.166666672
Все команды можно записать и в одну строчку:
cout << fixed << setprecision(9) << setw(12) << x << endl;