redondear quitar programacion poner numeros numero lenguaje entero dev definir decimales con como coma c++

c++ - quitar - Imprimir el número correcto de decimales con cout



programacion c decimales (11)

Tengo una lista de valores float y quiero imprimirlos con cout con 2 decimales.

Por ejemplo:

10.900 should be printed as 10.90 1.000 should be printed as 1.00 122.345 should be printed as 122.34

¿Cómo puedo hacer esto?

(la setprecision no parece ayudar en esto).


Con <iomanip> , puede usar std::fixed y std::setprecision

Aquí hay un ejemplo

#include <iostream> #include <iomanip> int main() { double d = 122.345; std::cout << std::fixed; std::cout << std::setprecision(2); std::cout << d; }

Y obtendrás salida

122.34


Estuviste cerca, necesitas usar std :: fixed también, consulta http://www.cplusplus.com/reference/iostream/manipulators/fixed/

#include <iostream> #include <iomanip> int main(int argc, char** argv) { float testme[] = { 0.12345, 1.2345, 12.345, 123.45, 1234.5, 12345 }; std::cout << std::setprecision(2) << std::fixed; for(int i = 0; i < 6; ++i) { std::cout << testme[i] << std::endl; } return 0; }

productos:

0.12 1.23 12.35 123.45 1234.50 12345.00


Para establecer 2 dígitos fijos después del punto decimal, use estos primero:

cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(2);

Luego imprime tus valores dobles.

Esto es un ejemplo:

#include <iostream> using std::cout; using std::ios; using std::endl; int main(int argc, char *argv[]) { cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(2); double d = 10.90; cout << d << endl; return 0; }


Simplifica la respuesta aceptada

Ejemplo simplificado:

#include <iostream> #include <iomanip> int main() { double d = 122.345; std::cout << std::fixed << std::setprecision(2) << d; }

Y obtendrás salida

122.34

Referencia:


Solo un punto menor; poner lo siguiente en el encabezado

usando namespace std;

entonces

std :: cout << std :: fixed << std :: setprecision (2) << d;

se simplifica a

cout << fixed << setprecision (2) << d;


Tienes que configurar el ''modo flotante'' para arreglarlo.

float num = 15.839; // this will output 15.84 std::cout << std::fixed << "num = " << std::setprecision(2) << num << std::endl;


Tuve este problema similar en una competencia de codificación y así es como lo manejé. Establecer una precisión de 2 en todos los valores dobles

Primero agregando el encabezado para usar setprecision

#include <iomanip>

Luego agregando el siguiente código en nuestra página principal

double answer=5.9999; double answer2=5.0000; cout<<setprecision(2)<<fixed; cout <<answer << endl; cout <<answer2 << endl;

Salida:

5.99 5.00

Debes usar el método fijo para escribir 5.00, es por eso que tu salida no será de 5.00.

Un breve enlace de video de referencia que estoy agregando, que es útil


Tuve un problema con los enteros mientras quería un formato coherente.

Una reescritura para completar:

#include <iostream> #include <iomanip> int main() { // floating point formatting example double d = 122.345; cout << std::fixed << std::setprecision(2) << d << endl; // Output: 122.34 // integer formatting example int i = 122; cout << std::fixed << std::setprecision(2) << double(i) << endl; // Output: 122.00 }


este es un ejemplo usando una matriz.

cout<<setprecision(4)<<fixed<<m[i][j]


setprecision(n) aplica al número entero, no a la parte fraccional. setiosflags(ios::fixed) usar el formato de punto fijo para aplicarlo a la parte fraccionaria: setiosflags(ios::fixed)


#include<stdio.h> int main() { double d=15.6464545347; printf("%0.2lf",d); }