Rumah >hujung hadapan web >tutorial js >Mengapa Operator Modulo JavaScript (%) Menghasilkan Keputusan Tidak Dijangka dengan Nombor Negatif?

Mengapa Operator Modulo JavaScript (%) Menghasilkan Keputusan Tidak Dijangka dengan Nombor Negatif?

DDD
DDDasal
2024-12-01 10:52:09635semak imbas

Why Does JavaScript's Modulo Operator (%) Produce Unexpected Results with Negative Numbers?

JavaScript's % Operator untuk Nombor Negatif: Kejutan Negatif

Operator modulus (%) ialah alat yang berharga untuk bekerja dengan baki. Walau bagaimanapun, apabila ia berkaitan dengan nombor negatif dalam JavaScript, hasilnya boleh di luar jangkaan.

Masalahnya:

Dalam kes seperti (-13) % 64, JavaScript kembali -13, manakala kalkulator konvensional seperti Google Calculator memberikan hasil yang positif (51). Percanggahan ini berpunca daripada tingkah laku pengendali dengan operan negatif.

Pembetulan:

Untuk mengatasi isu ini, pelaksanaan tersuai pengendali modulus untuk nombor negatif boleh digunakan :

Number.prototype.mod = function (n) {
  "use strict";
  return ((this % n) + n) % n;
};

Pengubahsuaian ini memastikan bahawa keputusan (-13) % 64 adalah 51, sejajar dengan hasil matematik yang dijangkakan. Untuk mendapatkan maklumat lanjut, rujuk artikel "The JavaScript Modulo Bug".

Atas ialah kandungan terperinci Mengapa Operator Modulo JavaScript (%) Menghasilkan Keputusan Tidak Dijangka dengan Nombor 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