Rumah >Java >javaTutorial >## Mengapakah Operator Modulus Java (%) Mengembalikan Keputusan Negatif untuk Nombor Negatif?
Pengiraan Modulus dalam Java: Mengendalikan Nombor Negatif
Di Java, melakukan operasi modulus pada nombor negatif selalunya menghasilkan keputusan yang tidak dijangka. Apabila menggunakan pengendali modulus (%) pada nombor negatif, seseorang mungkin mengharapkan untuk memperoleh nilai positif, tetapi dalam beberapa kes, ia mengembalikan hasil negatif. Untuk memahami tingkah laku ini, adalah penting untuk menyelidiki cara dalaman pengiraan modulus.
Operator modulus mengira baki apabila membahagikan satu nombor dengan yang lain. Untuk nombor positif, selebihnya adalah positif secara konsisten. Walau bagaimanapun, apabila berurusan dengan nombor negatif, terdapat dua takrifan modulus yang mungkin:
Java menggunakan definisi modulus pemangkasan. Akibatnya, apabila membahagikan nombor negatif dengan nombor positif, bakinya sentiasa negatif. Sebagai contoh, -13 % 64 menilai kepada -13 di Jawa kerana -13 dibahagikan dengan 64 tanpa sebarang komponen pecahan.
Jika seseorang inginkan baki positif untuk input negatif, coretan kod berikut boleh digunakan:
<code class="java">int r = x % n; if (r > 0 && x < 0) { r -= n; }</code>
Sebaliknya, jika seseorang memilih baki negatif untuk input negatif, coretan kod berikut boleh digunakan:
<code class="java">int r = x % n; if (r < 0) { r += n; }</code>
Memahami takrifan modulus yang berbeza-beza adalah penting apabila bekerja dengan nombor negatif dalam bahasa pengaturcaraan yang berbeza. Dengan memahami perbezaan antara modulus lantai dan pemotongan, pembangun boleh memastikan bahawa kod mereka berkelakuan seperti yang dimaksudkan, terutamanya apabila berurusan dengan input negatif.
Atas ialah kandungan terperinci ## Mengapakah Operator Modulus Java (%) Mengembalikan Keputusan Negatif untuk Nombor Negatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!