C++ манипулатор setprecision
C++ манипулатор setprecision функцията се използва за контролиране на броя на цифрите на изходен поток, показващ стойност с плаваща запетая.
Този манипулатор е деклариран в заглавния файл.
Синтаксис
/*unspecified*/ setprecision (int n);
Параметър
н : нова стойност за десетичната точност.
Върната стойност
Тази функция връща обект от неопределен тип. Функцията setbase трябва да се използва само като манипулатор на поток.
Състезания с данни
Поточният обект, в който е вмъкнат или извлечен, е модифициран и едновременният достъп до същия поток обект може да доведе до състезания за данни.
Изключения
Обектът е във валидно състояние, ако е хвърлено изключение.
Пример 1
Нека видим простия пример, за да демонстрираме използването на setprecision:
#include // std::cout, std::fixed #include // std::setprecision using namespace std; int main () { double f =3.14159; cout << setprecision(5) << f << '
'; cout << setprecision(9) << f << '
'; cout << fixed; cout << setprecision(5) << f << '
'; cout << setprecision(9) << f << '
'; return 0; } Изход:
3.1416 3.14159 3.14159 3.141590000
Пример 2
Нека видим друг прост пример:
#include #include #include #include using namespace std; int main() { const long double pi = acos(-1.L); cout << 'default precision (6): ' << pi << '
' << 'setprecision(10): ' << setprecision(10) << pi << '
' << 'max precision:' << setprecision(numeric_limits::digits10 + 1) << pi << '
'; return 0; } Изход:
default precision (6): 3.14159 setprecision(10): 3.141592654 max precision:3.141592653589793239
Пример 3
Нека видим друг прост пример:
#include #include using namespace std; int main (void) { float a,b,c; a = 5; b = 3; c = a/b; cout << setprecision (1) << c << endl; cout << setprecision (2) << c << endl; cout << setprecision (3) << c << endl; cout << setprecision (4) << c << endl; cout << setprecision (5) << c << endl; cout << setprecision (6) << c << endl; return 0; } Изход:
2 1.7 1.67 1.667 1.6667 1.66667