>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 모듈로 연산자(%)가 음수와 함께 예상치 못한 결과를 생성하는 이유는 무엇입니까?

JavaScript의 모듈로 연산자(%)가 음수와 함께 예상치 못한 결과를 생성하는 이유는 무엇입니까?

DDD
DDD원래의
2024-12-01 10:52:09640검색

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

음수에 대한 JavaScript의 % 연산자: 음수 놀라움

모듈러스 연산자(%)는 나머지 작업에 유용한 도구입니다. 그러나 JavaScript에서 음수의 경우 예상치 못한 결과가 나올 수 있습니다.

문제:

(-13) % 64와 같은 경우 JavaScript는 반환합니다. -13, Google 계산기와 같은 기존 계산기는 긍정적인 결과를 제공합니다(51). 이러한 불일치는 음수 피연산자를 사용하는 연산자의 동작에서 비롯됩니다.

수정 방법:

이 문제를 극복하려면 음수에 대한 모듈러스 연산자의 사용자 지정 구현을 사용할 수 있습니다. :

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

이 수정을 통해 (-13) % 64의 결과는 다음과 같습니다. 51, 예상되는 수학적 결과와 일치합니다. 자세한 내용은 "JavaScript 모듈로 버그" 기사를 참조하세요.

위 내용은 JavaScript의 모듈로 연산자(%)가 음수와 함께 예상치 못한 결과를 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.