Trouver le pourcentage d'un nombre entier à un autre
J'ai deux entiers (nombre d'octets de deux fichiers). On est toujours plus petits, si ce n'est le même que l'autre. Je veux calculer le pourcentage que le plus petit est le plus grand.
Je suis à l'aide de la plaine C. j'ai appliqué la formule math, mais suis toujours à 0:
printf("%d\r", (current/total)*100);
Des idées?
OriginalL'auteur Luca Matteis | 2011-02-04
Vous devez vous connecter pour publier un commentaire.
Essayer
à la place. Division entière arrondit toujours vers zéro. Par la conversion de l'un des numéros de
double
tout d'abord, vous déclencherez floating point de la division. Si vous souhaitez utiliser l'arithmétique des nombres entiers, vous pouvez également utiliserqui permet d'imprimer le pourcentage arrondi à la baisse au nombre entier le plus proche.
où pouvez-vous voir une parenthèse supplémentaires ?
Elle est retirée entre-temps. Vous pouvez voir l'historique d'édition en cliquant sur l'heure, après le mot "édition".
OriginalL'auteur Sven Marnach
Sven vous donner de bons conseils.
Si vous voulez garder votre entiers, ne la multiplication avant la division :
Vous obtiendrez un résultat arrondi.
L'intégrale de la division de fait avec
numerator < denominator
donne toujours 0. C'est l'explication de votre "0" problème. En multipliant par 100 avant de diviser obtenir une partie intégrante de votre division (en pourcentage)my2c
OriginalL'auteur neuro
Je recommande l'intensification de l'auteur de la proposition avant de faire la division:
Ici, l'100 à virgule flottante littérale permettra de promouvoir le calcul, donc pas de conversions explicites sont nécessaires, qui est aussi un avantage.
OriginalL'auteur unwind
Mieux d'essayer:
Puisque la réponse sera en virgule flottante.
OriginalL'auteur Shamim Hafiz
Division entière tours vers le bas, donc si votre réponse est inférieur à 1, vous obtiendrez 0.
Vous pouvez essayer quelque chose comme ceci:
Cependant, vous pourrez toujours obtenir un entier.
Si vous lancez un numérateur d'un flotteur, vous obtiendrez flotteur de la division et de la bonne réponse.
Cependant, vous souhaiterez peut-être tronquer zéros après, par exemple, pour les 3 chiffres avant la virgule et 2 après vous pouvez utiliser:
Découvrez:
http://www.cplusplus.com/reference/clibrary/cstdio/printf/
OriginalL'auteur Eric Edem