Maison >Java >javaDidacticiel >Pourquoi l'opérateur Modulo de Java renvoie-t-il des résultats négatifs pour les entrées négatives ?

Pourquoi l'opérateur Modulo de Java renvoie-t-il des résultats négatifs pour les entrées négatives ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-02 04:50:02659parcourir

Why Does Java's Modulo Operator Return Negative Results for Negative Inputs?

Comprendre Modulo et Reste en Java

En Java, l'opérateur modulo (%) calcule le reste après avoir divisé un nombre par un autre. Contrairement à l'opérateur modulo de Python, l'opération modulo de Java renvoie des valeurs négatives pour les entrées négatives. Cela peut conduire à des résultats inattendus, comme démontré lors du calcul de -1 % 2 en Python et Java.

Résoudre l'écart

Pour obtenir le même comportement que le modulo de Python opérateur en Java, vous pouvez employer les techniques suivantes :

  • Utiliser une formule : Appliquer la formule (((-1 % 2) 2) % 2) pour toujours obtenir un résultat positif pour le reste.
  • Vérifiez les valeurs négatives : Au lieu d'utiliser l'opérateur modulo, vérifiez si le résultat de la division est négatif. Si tel est le cas, ajoutez le dénominateur au résultat pour obtenir une valeur positive.

Exemple de code :

<code class="java">int i = (((-1 % 2) + 2) % 2);</code>

ou

<code class="java">int i = -1 % 2;
if (i < 0) i += 2;</code>

En utilisant ces techniques, vous pouvez vous assurer que l'opération modulo en Java se comporte de manière cohérente avec l'opérateur modulo de Python et fournit les valeurs de reste positif attendues.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn