Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/02/2016, 05:54
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Duda con el código fuente

Código C:
Ver original
  1. int H,M,CANT_A;
  2. float PORC_H,PORC_M;
  3.  
  4.    
  5. PORC_H=(H/CANT_A)*100;

H y CANT_A son enteros, luego la división de ambos da como resultado un entero, lo que hace que pierdas los decimales.

Código C:
Ver original
  1. PORC_H=(H/(float)CANT_A)*100;

Esta otra combinación, en cambio, divide un entero entre un float. En este caso el estándar dicta que el resultado se devuelva en forma de float, es decir, con decimales.

Después ese float se multiplica por un entero, en este caso el estándar dice que el resultado será otra vez un float, manteniendo los decimales.

Otra posibilidad sin hacer conversiones explícitas:

Código C:
Ver original
  1. PORC_H=H*100.0/CANT_A;

En este caso int*float=float y float/int=float, luego tampoco perderás los decimales.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.