Java: Essayer d'obtenir le pourcentage d'entiers, comment faire pour arrondir?
J'ai deux valeurs de type entier, x et total. Je suis en train d'essayer de trouver le pourcentage du x au total un nombre entier. C'est de cette façon que je suis en train de faire maintenant:
pourcentage = (int)((x*100)/total);
Le pourcentage doit être un entier. Quand je fais cela, il arrondit toujours le point décimal vers le bas. Est-il un moyen simple de calculer le pourcentage d'un nombre entier de sorte qu'il arrondit si la décimale est .5 ou plus?
OriginalL'auteur Petefic | 2012-03-27
Vous devez vous connecter pour publier un commentaire.
Utilisation
Math.round(x * 100.0/total)
. Mais notez que cette fonction retourne une longue, donc une distribution simple àint
sera nécessaire.J'ai mis 100.0 forcer à utiliser en arithmétique à virgule flottante avant l'arrondissement.
Je crois qu'il retourne un int si vous passez dans un flotteur? La façon dont je l'ai écrit il va passer dans un lit double et de retour d'un long.
en fait j'ai édité ma réponse parce que x, 100 et total étaient tous ints donc l'arithmétique avons tous été des entiers et l'appel à la ronde aurait été une perte de temps. J'ai changé de 100,0 à utiliser arithmétique à virgule flottante, puis ajouté une explication pour cela.
peut-être que vous devriez jeter un oeil à la révision de ma réponse avant de faire idiot de fausses accusations.
OriginalL'auteur joshuahealy
devrait fonctionner.
OriginalL'auteur antonio081014
Suffit d'utiliser
Math.round(100.0 /total * x);
OriginalL'auteur Chris
Pourquoi ne pas utiliser
Math.round((x*100)/total);
Cette réponse ne résout pas le problème que
x
ettotal
sont tous les deux des entiers. L'expression sera évaluée à l'aide de l'arithmétique entière et sera arrondie vers le bas avant d'être passé dans la fonction arrondi.OriginalL'auteur Churk
Utiliser la bibliothèque mathématique standard en Java.
OriginalL'auteur Dharini Chandrasekaran
Vous pouvez ajouter 0,5 pour les valeurs positives (aller à infitity)
C'est plus rapide que l'utilisation des Mathématiques.ronde, mais peut-être pas aussi clair.
BTW:
100.0 /total * x
pourraient ne pas donner le même résultat quex * 100.0 /total
que l'ordre d'évaluation peut changer le résultat de calculs en virgule flottante.OriginalL'auteur Peter Lawrey
Méthode La Plus Simple -
Question : Comment faire pour arrondir la valeur d'un nombre décimal(par exemple : int n = 4.57)
Réponse : Les Mathématiques.round(n);
De sortie : 5 .
Il n'est pas correct, vous pouvez lire la question de plus près, et découvrez les nombreuses réponses qui répondre correctement.
OriginalL'auteur Anonymous