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
Lepaskan: 2024-12-01 10:52:09
asal
727 orang telah melayarinya

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;
};
Salin selepas log masuk

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 Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan