В стандартном C ++ форматирование выполняется с помощью определенных переменных, манипуляторов, объектов и т. Д., Которые находятся в выходном потоке (cout) класса по умолчанию ostream. В основном существует только два типа манипуляторов с плавающей запятой, знаменитые the фиксированная нотация с плавающей запятой и научная нотация с плавающей запятой, которая известна своей связью с 'e' (поясняется ниже). Все они определены в широко используемой библиотеке заголовков ‹iostream›.
Зачем устанавливать precision ()?
Основное использование функции precision () в стандартных обозначениях с плавающей запятой состоит в том, что она указывает наивысшее число.
должны отображаться значащие цифры, включая все цифры числа, независимо от того, присутствует ли оно до или после десятичной точки, тогда как в фиксированной и экспоненциальной нотации функция точности определяет точное количество цифр, которые должны отображаться после десятичной точки. десятичная точка.
Теперь давайте разберемся со всеми обозначениями с плавающей запятой, которые можно использовать с функцией precision (). Они следующие: -
1. Обозначение с плавающей запятой (std :: fixed):
Здесь мы записываем значения с плавающей запятой в фиксированной записи. Конечное значение отображается с точно таким количеством цифр после десятичной части, которое было задано в качестве параметра в точности (x), здесь x. В этом случае мы не учитываем экспоненциальную часть.
Код: #include <iostream>
using
namespace
std;
int
main()
{
// Initializing
double
a = 4.223234232;
double
b = 2323.0;
//Giving precision parameter
cout.precision(4);
// Printing normal values
cout << "Normal values of floating point numbers\na = ";
cout << a << "\nb = "
<< b << '\n'
;
// Printing values using fixed ( till 4 )
cout << "Values using fixed \n"
<< std::fixed;
cout << a << "\n"
<< b << '\n'
;
return
0;
}
Выход:
Нормальные значения чисел с плавающей запятой
a = 4,223
b = 2323
Значения с фиксированным
4,2232
2323,0000
2. научная нотация с плавающей запятой (std :: scientific):
В этом случае значения с плавающей запятой отображаются в экспоненциальном представлении. Как и в любом научном значении, перед десятичной частью стоит только одна цифра, а после десятичной точки количество цифр такое же, как число, указанное в качестве параметра в setprecision (x Это обозначение имеет особую часть (как я уже упоминал выше), оно всегда включает в себя экспоненциальную часть e, за которой следует необязательный знак и три экспоненциальных числа.
Код:
#include <iostream>
using
namespace
std;
int
main()
{
// Initializing floating point variable
double
a = 4.223234232;
double
b = 2323.0;
// Specifying precision
cout.precision(4);
// Printing normal values
cout << "Normal values of floating point numbers\na = ";
cout << a << "\nb = "
<< b << '\n'
;
// Printing values using scientific ( till 4 )
// after 4, exponent is used
cout << "Values using scientific are : "
<< std::scientific << endl;
cout << a << '\n'
<< b << '\n'
;
return
0;
}
Выход :
Normal values of floating point numbers a = 4.223 b = 2323 Values using scientific are : 4.2232e+00 2.3230e+03
3. Нотация с плавающей запятой Hexfloat (std :: hexfloat):
Он отображает желаемое число после преобразования в шестнадцатеричную форму после передачи параметра точности (x).
Код;
#include <iostream>
using
namespace
std;
int
main()
{
// Initializing floating point variable
double
a = 4.223234232;
double
b = 2323.0;
// Specifying precision
cout.precision(4);
// Printing normal values
cout << "Normal values of floating point numbers\na = ";
cout << a << "\nb = "
<< b << '\n'
;
// Printing values using hexfloat ( till 4 )
cout << "Values using hexfloat are : "
<< std::hexfloat << endl;
cout << a << '\n'
<< b << '\n'
;
return
0;
}
Выход:
Normal values of floating point numbers a = 4.223 b = 2323 Values using hexfloat are : 0x1.0e49783b72695p+2 0x1.226p+11
4. Обозначение с плавающей запятой по умолчанию (std :: default float):
После определения точности (x) он отображает желаемую цифру так же, как по умолчанию. Этот в основном используется, чтобы различать другие используемые форматы для лучшего суждения о коде.
Код:
#include <iostream>
using
namespace
std;
int
main()
{
// Initializing floating point variable
double
a = 4.223234232;
double
b = 2323.0;
// Specifying precision
cout.precision(4);
// Printing normal values
cout << "Normal values of floating point numbers\na = ";
cout << a << "\nb = "
<< b << '\n'
;
// Printing values using defaultfloat ( till 4 )
// same as normal
cout << "Values using defaultfloat are : "
<< std::defaultfloat << endl;
cout << a << '\n'
<< b << '\n'
;
return
0;
}
Выход
Values using fixed 4.2232 2323.0000 Values using defaultfloat are : 4.223 2323
Надеюсь, вы поняли основное определение нотаций с плавающей запятой, которые используются с точностью, и теперь будете использовать их с большей уверенностью.