Foros del Web » Programación para mayores de 30 ;) » C/C++ »

float con 2 decimales

Estas en el tema de float con 2 decimales en el foro de C/C++ en Foros del Web. Hola a todos!!! es la primera vez que posteo ... tengo una duda respecto a variables float en c++, como puedo especificar que una variable ...
  #1 (permalink)  
Antiguo 23/09/2009, 16:42
 
Fecha de Ingreso: septiembre-2009
Mensajes: 1
Antigüedad: 14 años, 7 meses
Puntos: 0
float con 2 decimales

Hola a todos!!! es la primera vez que posteo ... tengo una duda respecto a variables float en c++, como puedo especificar que una variable tipo float utilice solo 2 decimales, esto para realizar operaciones no para imprimir en pantalla, suponiendo que el valor de la variable float es asignado por el usuario y no por el programador, para impresion en pantala es simplemente cout.precision(2); y asi indico que solo me muestre 2 decimales de la variable cuando mande a imprimir, pero no busco eso, si no que desde un principio me acepte solamente 2 decimales... espereo haberme explicado, de antemano gracias....
  #2 (permalink)  
Antiguo 23/09/2009, 19:10
 
Fecha de Ingreso: septiembre-2009
Mensajes: 10
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: float con 2 decimales

Hola como te va....si no me equivoco porque soy medio nuevo en esto...tu problemas se resolvería:

Ejemplo si la variable donde se guarda el float se llama a

float a;

scanf ("%.2f", &a);
/*acá guardaría la variable con dos decimales, creo que lo predeterminado son 6 decimales si solo usas %f, espero esta halla sido tu pregunta*/

espero te sirva.
Saludos
  #3 (permalink)  
Antiguo 23/09/2009, 22:14
 
Fecha de Ingreso: septiembre-2009
Mensajes: 56
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: float con 2 decimales

Una declaración concreta para hacer eso no la conozco, pero lo que haría yo es que después de hacer cualquier operación quitaría los decimales que no quiero, del tercero en adelante hacerlos 0. Por ejemplo,
int a;
float b = 2.32652;

cada vez que se haga una operación con el float 'b' hacer lo siguiente:

a = 100*b;
b = a*1.0/100;

De esta forma en 'a' quedaría guardado 232 (ahí me deshice de los demás decimales porque 'a' no es float sino entero), y luego 'b' queda como 2.32

Nota: Para el ejemplo que puse debería quedar aproximado en 2.33, para eso habría que adicionarle una cosa más, pero mas o menos eso es lo que yo haría.
Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:31.