Rumah  >  Artikel  >  Java  >  Mengapa Operator Modulo Java (%) Mengembalikan Keputusan Berbeza Daripada Python untuk Dividen Negatif?

Mengapa Operator Modulo Java (%) Mengembalikan Keputusan Berbeza Daripada Python untuk Dividen Negatif?

Barbara Streisand
Barbara Streisandasal
2024-10-30 14:34:30403semak imbas

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

Perbezaan Kelakuan Modulo dalam Java dan Python

Di Java, pengendali modulo (%) menghasilkan baki apabila membahagikan satu nombor dengan yang lain. Walau bagaimanapun, untuk dividen negatif, Python mengembalikan modulus, manakala Java mengembalikan bakinya. Modulus sentiasa positif, manakala selebihnya mengekalkan tanda dividen.

Untuk menyelaraskan gelagat modulo Java dengan Python, pengubahsuaian diperlukan. Ini boleh dicapai dengan menambahkan operasi modulo lain atau pelarasan pada tanda hasil.

Contohnya:

<code class="java">int i = (((-1 % 2) + 2) % 2); // adds 2 to the initial remainder and takes the modulus again</code>

atau

<code class="java">int i = -1 % 2;
if (i < 0) i += 2; // adds 2 if the initial remainder is negative</code>

Dengan membuat ini pelarasan, hasilnya akan sepadan dengan gelagat modulus yang dijangkakan dalam Python, memastikan nilai positif untuk dividen negatif apabila melakukan operasi modulo.

Atas ialah kandungan terperinci Mengapa Operator Modulo Java (%) Mengembalikan Keputusan Berbeza Daripada Python untuk Dividen Negatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn