J'ai deux chiffres INT A, B toujours> = 0. Je veux diviser A par B et renvoyer le pourcentage arrondi sur l'entier le plus proche.
Exemple: 18/38 devrait renvoyer 47 et 13/38 Retour 34. P>
Comment puis-je accomplir cela? p>
J'ai essayé ce qui suit, mais cela n'a pas fonctionné p>
4 Réponses :
Etant donné que a code> et b code> sont des entiers, a / b code> utiliseront Division entier et renvoie uniquement la partie" entière "du résultat. Au lieu de cela, vous devriez multiplier A code> par 100.0 code> (notez le .0 code>, ce qui en fait un double code> littéral!) utiliser la division de points flottants, puis CEIL code> le résultat et tronquez-le à un int code>:
c = (int) math.round (100.0 * A / B); code> donnera 47 qui est destiné à
Merci pour votre réponse! Je reçois 18/38 = 45 et 13/38 = 35 pour une raison quelconque?
@Bigmon le texte de votre question et l'exemple que vous avez donné contredit mutuellement. E.G. 13/38 est d'environ 34,21% - si vous souhaitez l'arrondir comme le texte indique que vous obtiendrez 35, que le code revient; Si vous voulez obtenir 34 qui seraient arrondi et que vous devriez utiliser plancher code> au lieu de ceil code> - ou, bien sûr, vous pouvez simplement utiliser rond code> pour obtenir l'entier le plus proche.
@Murinik C'est mon mauvais, j'ai changé le plafond pour tourner comme vous l'avez dit et il semble fonctionner comme je le veux.
c = (int) Math.round(100.0 * a / b); This should give desired result.
MATH.FLOOR CODE> TOUJOURS TOUT TOUJOURS MIEUX POUR UTILISER MATH.ROND CODE>.
Correct, mon mauvais.
Vous devez suivre les choses pour obtenir le résultat merci p> p> p>
public static void main(String[] args){
int a=18,b=38,c=0;
c = (int) Math.round(100.0 * a / b);
System.out.println(c);
}
As @Mureinik said that a and b are integers,they will use integer division.
you should multiply 100 by a like above. and keep using .round instead of .ceil inorder to get 47 as output which is intended .ceil will give you 48 as output.
A / B est une division entière. Vous devez lancer au moins un des opérandes à un double pour avoir une double division.