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.