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

Como eliminar decimales de un float en caso de no ser necesarios.

Estas en el tema de Como eliminar decimales de un float en caso de no ser necesarios. en el foro de C/C++ en Foros del Web. Buenas! estoy haciendo un programa que calcule una ecuación cuadrática y me gustaría quitarle los decimales a los resultados que no los necesitan, como por ...
  #1 (permalink)  
Antiguo 14/05/2011, 19:47
 
Fecha de Ingreso: abril-2010
Mensajes: 66
Antigüedad: 14 años
Puntos: 0
Como eliminar decimales de un float en caso de no ser necesarios.

Buenas! estoy haciendo un programa que calcule una ecuación cuadrática y me gustaría quitarle los decimales a los resultados que no los necesitan, como por ejemplo un 4.00 o un 3.40.

Yo ya los redondié a solo 2 decimales, pero si el resultado es un numero entero quisiera que directamente ni aparezcan los decimales.
  #2 (permalink)  
Antiguo 14/05/2011, 20:11
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Como eliminar decimales de un float en caso de no ser necesarios.

no utilices el tipo float... usa el tipo entero (int)
  #3 (permalink)  
Antiguo 15/05/2011, 12:22
 
Fecha de Ingreso: abril-2010
Mensajes: 66
Antigüedad: 14 años
Puntos: 0
Respuesta: Como eliminar decimales de un float en caso de no ser necesarios.

pero si uso el tipo int, el programa no va a calcular los decimales en caso de que los ingrese.
  #4 (permalink)  
Antiguo 15/05/2011, 13:24
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 24
Respuesta: Como eliminar decimales de un float en caso de no ser necesarios.

Podrías hacer un chequéo para ver si tiene decimales e imprimirlo como int o float según el resultado aunque quede feo en mi opinión...
Código:
if(numero!=int(numero)){
//imprimir normal (como float)
}else{
//imprimir como int
}
__________________
Foros Desarrollo de Juegos
  #5 (permalink)  
Antiguo 15/05/2011, 14:28
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Respuesta: Como eliminar decimales de un float en caso de no ser necesarios.

Hola,

La representación de los números es solamente visual, internamente se guardan en bytes, así que internamente deben ser almacenados en el tipo que les corresponde, pero para representarlos visualmente puedes usar algo así:

Código C:
Ver original
  1. //
  2.     float f[] = {4.00f, 3.40f, 24.798f, 78.0000000001f};
  3.     int i;
  4.     for (i = 0; i < sizeof(f) / sizeof(float); i++)
  5.         printf("%.*f\n", f[i] - (int)f[i] ? 2 : 0, f[i]);
  6. //      printf("%.*f\n", f[i] != (int)f[i] ? 2 : 0, f[i]);
Saludos,

Etiquetas: coma, decimal, décimales, enteros, float, fracciones, int, numeros, redondear, resultados
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 20:05.