Maison >Java >javaDidacticiel >Pourquoi l'opérateur Modulo (%) de Java renvoie-t-il des résultats différents de ceux de Python pour des dividendes négatifs ?
Différence de comportement modulo en Java et Python
En Java, l'opérateur modulo (%) donne le reste lors de la division d'un nombre par un autre. Cependant, pour les dividendes négatifs, Python renvoie le module, tandis que Java renvoie le reste. Le module est toujours positif, tandis que le reste conserve le signe du dividende.
Pour aligner le comportement modulo de Java avec celui de Python, une modification est nécessaire. Ceci peut être réalisé en ajoutant une autre opération modulo ou un ajustement au signe du résultat.
Par exemple :
<code class="java">int i = (((-1 % 2) + 2) % 2); // adds 2 to the initial remainder and takes the modulus again</code>
ou
<code class="java">int i = -1 % 2; if (i < 0) i += 2; // adds 2 if the initial remainder is negative</code>
En faisant ceci ajustement, le résultat correspondra au comportement de module attendu en Python, garantissant des valeurs positives pour les dividendes négatifs lors de l'exécution d'opérations modulo.
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!