Redondear el número de coma flotante a 2 decimales en C++
-
Utilice los especificadores de formato de función
printf
para redondear el número de coma flotante a 2 decimales en C++ -
Utilice los especificadores de formato de función
fprintf
para redondear el número de coma flotante a 2 decimales en C++ -
Utilice
std::setprecision
ystd::fixed
para redondear el número de coma flotante a 2 decimales en C++

Este artículo explicará varios métodos de cómo redondear números de punto flotante a 2 decimales en C++.
Utilice los especificadores de formato de función printf
para redondear el número de coma flotante a 2 decimales en C++
Los números de coma flotante tienen una representación binaria especial, lo que implica que las máquinas no pueden representar exactamente los números reales. Por lo tanto, es común recurrir a funciones de redondeo cuando se opera con números de punto flotante y se realizan cálculos sobre ellos. En este caso, sin embargo, solo necesitamos generar una cierta porción de la parte fraccionaria de los números.
La primera solución es utilizar la función printf
para enviar texto formateado al flujo stdout
. Tenga en cuenta que el especificador de formato normal para los números flotantes
- %f
debe modificarse a %.2f
. La última notación asegura que solo se impriman 2 decimales del número y, al mismo tiempo, realiza el redondeo de acuerdo con las reglas matemáticas comunes. Tenga en cuenta que se puede usar una notación similar con especificadores de formato de otros tipos de datos.
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main() {
vector<double> floats {-3.512312, -21.1123, -1.99, 0.129, 2.5, 3.111};
for (auto &item : floats) {
printf("%.2f; ", item);
}
return EXIT_SUCCESS;
}
Producción:
-3.51; -21.11; -1.99; 0.13; 2.50; 3.11;
Utilice los especificadores de formato de función fprintf
para redondear el número de coma flotante a 2 decimales en C++
fprintf
es otra función que puede usarse para hacer el formato de salida como la llamada a printf
y, además, puede escribir en cualquier objeto de flujo FILE*
que se pueda pasar como primer argumento. En el siguiente ejemplo, demostramos la impresión en el flujo stderr
, una versión sin búfer de stdout
para informes de errores y registro.
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main() {
vector<double> floats {-3.512312, -21.1123, -1.99, 0.129, 2.5, 3.111};
for (auto &item : floats) {
fprintf(stderr, "%.2f; ", item);
}
return EXIT_SUCCESS;
}
Producción:
-3.51; -21.11; -1.99; 0.13; 2.50; 3.11;
Utilice std::setprecision
y std::fixed
para redondear el número de coma flotante a 2 decimales en C++
Alternativamente, se puede utilizar la función std::setprecision
de la biblioteca de manipuladores de E/S junto con std::fixed
. Este último se utiliza para modificar el formato predeterminado para operaciones de entrada/salida de punto flotante. Si lo usamos junto con std::setprecision
, el resultado es una precisión fija de los números reales, y la precisión se puede especificar con el argumento entero pasado al propio std::setprecision
.
#include <iostream>
#include <vector>
#include <iomanip>
using std::cout;
using std::endl;
using std::vector;
using std::fixed;
using std::setprecision;
int main() {
vector<double> floats {-3.512312, -21.1123, -1.99, 0.129, 2.5, 3.111};
for (auto &item : floats) {
cout << setprecision(2) << fixed << item << "; ";
}
return EXIT_SUCCESS;
}
Producción:
-3.51; -21.11; -1.99; 0.13; 2.50; 3.11;
Artículo relacionado - C++ Float
- Establecer la precisión de los números de punto flotante 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++