Maison  >  Article  >  Java  >  Pourquoi l'opérateur Modulo (%) de Java renvoie-t-il des résultats différents de ceux de Python pour des dividendes négatifs ?

Pourquoi l'opérateur Modulo (%) de Java renvoie-t-il des résultats différents de ceux de Python pour des dividendes négatifs ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-30 14:34:30342parcourir

Why Does Java's Modulo Operator (%) Return Different Results Than Python for Negative Dividends?

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!

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