Cómo usar setprecision en C++
-
Usar el método
setprecision()
para establecer una precisión personalizada para los floates -
Use
setprecision()
ystd::fixed()
para establecer la precisión personalizada para las boyas -
Usa
setprecision()
ystd::fixed()
para alinear los floates a un punto decimal
Este artículo demostrará múltiples métodos sobre cómo usar el método setprecision
en C++.
Usar el método setprecision()
para establecer una precisión personalizada para los floates
setprecision()
es parte de la biblioteca de manipuladores de I/O
<iomanip>
y puede ser usada para modificar la precisión por defecto de los números de punto flotante. setprecision()
se usa normalmente en expresiones con flujos de E/S.
El siguiente ejemplo muestra cómo establecer la precisión de los números de punto flotante para el objeto de flujo de salida cout
. Observe que, setprecision()
se aplica al número entero (parte entera y parte fraccionaria) y utiliza la notación científica cuando los números tienen una magnitud mayor que la precisión especificada.
#include <iomanip>
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::fixed;
using std::setprecision;
using std::vector;
int main() {
vector<double> d_vec = {123.231, 2.2343, 0.324, 0.012,
26.9491092019, 11013, 92.001112, 0.000000234};
for (auto &i : d_vec) {
cout << setprecision(3) << i << " | ";
}
cout << endl;
return EXIT_SUCCESS;
}
Resultado:
123 | 2.23 | 0.324 | 0.012 | 26.9 | 1.1e+04 | 92 | 2.34e-07 |
Use setprecision()
y std::fixed()
para establecer la precisión personalizada para las boyas
Alternativamente, podemos usar manipuladores de setprecision()
y fixed()
en conjunto para imprimir valores de punto flotante con el mismo número de dígitos después del punto decimal. El método fixed()
establece la parte fraccionaria del número a una longitud fija, que por defecto es de 6 dígitos. En el siguiente ejemplo de código, salimos a la corriente de cout
y llamamos a ambos manipuladores antes de que el número se inserte en la salida.
#include <iomanip>
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::fixed;
using std::setprecision;
using std::vector;
int main() {
vector<double> d_vec = {123.231, 2.2343, 0.324, 0.012,
26.9491092019, 11013, 92.001112, 0.000000234};
for (auto &i : d_vec) {
cout << fixed << setprecision(3) << i << " | ";
}
cout << endl;
return EXIT_SUCCESS;
}
Resultado:
123.231 | 2.234 | 0.324 | 0.012 | 26.949 | 11013.000 | 92.001 | 0.000 |
Usa setprecision()
y std::fixed()
para alinear los floates a un punto decimal
Finalmente, podemos combinar los manipuladores setw
, right
, setfill
, fixed
y setprecision
para obtener números de punto flotante alineados con el punto decimal. El método setw
especifica el ancho del flujo de salida con el número de caracteres pasados como argumento. El método setfill
establece un carácter por el cual se llenará el espacio no utilizado y el método right
le dice al cout
el lado al que se aplica la operación de llenado.
#include <iomanip>
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::fixed;
using std::setprecision;
using std::vector;
int main() {
vector<double> d_vec = {123.231, 2.2343, 0.324, 0.012,
26.9491092019, 11013, 92.001112, 0.000000234};
for (auto &i : d_vec) {
cout << std::setw(10) << std::right << std::setfill(' ') << fixed
<< setprecision(4) << i << endl;
}
cout << endl;
return EXIT_SUCCESS;
}
Resultado:
123.2310
2.2343
0.3240
0.0120
26.9491
11013.0000
92.0011
0.0000
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookArtículo relacionado - C++ Float
- Establecer la precisión de los números de punto flotante en C++
- Redondear el número de coma flotante a 2 decimales en C++
- Cómo convertir Float en Int en C++
- Cómo generar un número aleatorio entre 0 y 1 en C++
- Cómo convertir el float en cadena de caracteres en C++
- Cómo generar un número flotante aleatorio en C++