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

JavaScript의 모듈러스 연산자가 음수로 인해 예상치 못한 결과를 생성하는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-26 02:22:12
원래의
756명이 탐색했습니다.

Why Does JavaScript's Modulus Operator Produce Unexpected Results with Negative Numbers?

음수에 대한 JavaScript의 모듈러스 연산자 동작

JavaScript에서 모듈러스 연산자(%)는 나누기 연산의 나머지를 계산합니다. 그러나 음수 피제수 값에 대해서는 수학 규칙 및 기타 프로그래밍 언어와 다르게 동작합니다.

음수 피제수에 대해 모듈러스 연산을 수행할 때 JavaScript는 음수 나머지를 반환하는 반면 수학적 계산 및 대부분의 다른 프로그래밍 언어는 양수를 반환합니다. 하나. 이는 다음 예를 통해 확인할 수 있습니다.

  • Google 계산기: (-13) % 64 = 51(예상 결과)
  • JavaScript: console.log(-13 % 64) = -13 (잘못된 결과)

문제

JavaScript에서 음수와 관련된 모듈러스 연산의 올바른 결과를 얻으려면 다음 사용자 정의 함수를 사용할 수 있습니다.

Number.prototype.mod = function (n) {
  "use strict";
  return ((this % n) + n) % n;
};
로그인 후 복사

이 함수는 음수 배당에 적용될 때, 반환된 나머지가 양수인지 확인합니다. 예를 들면 다음과 같습니다.

console.log((-13).mod(64)); // Output: 51 (correct result)
로그인 후 복사

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿