106 votes

Comment arrondir la division entière et avoir un résultat int en Java?

Je viens d’écrit une petite méthode pour compter le nombre de pages pour les SMS de téléphone portable. Je n’avais pas la possibilité d’arrondir en utilisant `` , et honnêtement, cela semble être très laid.

Voici mon code:

Je n’aime pas vraiment ce morceau de code et je cherche une façon plus élégante de le faire. Avec cela, je m’attends à 3 et non à 3.0000000. Des idées ?

209voto

Roman Points 296

Utilisez `` et cassez le résultat en int :

  • C’est toujours plus rapide que d’éviter les doubles en utilisant abs().
  • Le résultat est correct lorsque vous travaillez avec des négatifs, car -0,999 sera arrondi à 0

exemple:

125voto

Peter Lawrey Points 229686

Pour arrondir une division entière, vous pouvez utiliser

ou si les deux chiffres sont positifs

48voto

popstr Points 812

Un autre one-liner qui n’est pas trop compliqué:

Pourrait utiliser long au lieu de int ; il suffit de modifier les types de paramètres et le type de retour.

25voto

La bibliothèque Goava de Google gère cela dans la classe IntMath:

Contrairement à de nombreuses réponses ici, il gère les nombres négatifs. Il lève également une exception appropriée lorsque vous tentez de diviser par zéro.

14voto

Vache Points 13219
<pre><code></code><p>Cela donnera un entier « arrondi vers le haut ».</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X