Rumah  >  Artikel  >  Java  >  Mengapa Operator Modulo Java Mengembalikan Keputusan Negatif untuk Input Negatif?

Mengapa Operator Modulo Java Mengembalikan Keputusan Negatif untuk Input Negatif?

Patricia Arquette
Patricia Arquetteasal
2024-11-02 04:50:02544semak imbas

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

Memahami Modulo lwn. Baki dalam Java

Di Java, pengendali modulo (%) mengira baki selepas membahagikan satu nombor dengan yang lain. Tidak seperti pengendali modulo Python, operasi modulo Java mengembalikan nilai negatif untuk input negatif. Ini boleh membawa kepada hasil yang tidak dijangka, seperti yang ditunjukkan semasa mengira -1 % 2 dalam kedua-dua Python dan Java.

Menyelesaikan Percanggahan

Untuk mencapai kelakuan yang sama seperti modulo Python operator di Java, anda boleh menggunakan teknik berikut:

  • Gunakan Formula: Gunakan formula (((-1 % 2) 2) % 2) untuk sentiasa mendapatkan keputusan positif untuk selebihnya.
  • Semak Nilai Negatif: Daripada menggunakan operator modulo, semak sama ada keputusan pembahagian adalah negatif. Jika ya, tambahkan penyebut pada hasil untuk mendapatkan nilai positif.

Contoh Kod:

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

atau

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

Dengan menggunakan teknik ini, anda boleh memastikan bahawa operasi modulo dalam Java berkelakuan konsisten dengan pengendali modulo Python dan memberikan nilai baki positif yang dijangkakan.

Atas ialah kandungan terperinci Mengapa Operator Modulo Java Mengembalikan Keputusan Negatif untuk Input 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