javascript에서 mod 연산은 음수가 나온다

    

수학에서 "modulo" 연산의 정의에 따르면, 나머지는 항상 양수여야 합니다. 예를 들어, -7을 5로 나눌 때의 나머지는 3입니다. 이러한 정의는 다양한 프로그래밍 언어에서 구현되기도 합니다.


그러나 JavaScript에서 제공하는 % 연산자는 나머지 연산자로 동작하며, 피연산자 중 하나가 음수라면 결과가 음수가 될 수 있습니다. 이는 특정 상황에서는 불편할 수 있으므로, 항상 양수의 결과를 원할 경우에는 추가 처리가 필요합니다.


요약하면, JavaScript의 % 연산자는 나머지 연산자로 동작하며, 수학적인 "modulo" 연산과는 결과가 다를 수 있습니다. 양수의 결과를 원하면 추가 처리가 필요합니다.


JavaScript의 `%` 연산자는 "나머지 연산자"로서, 피연산자 중 하나가 음수일 경우 결과도 음수가 될 수 있습니다. 이는 일부 다른 프로그래밍 언어에서의 동작과 다를 수 있습니다.


예시를 들면:

```

console.log(7 % 5);   // 2

console.log(-7 % 5);  // -2

console.log(7 % -5);  // 2

console.log(-7 % -5); // -2

```


만약 항상 양수의 결과를 원한다면, 결과가 음수일 경우에 모듈로 (modulus) 값을 더해줄 수 있습니다:

```javascript

function positiveMod(a, b) {

    return ((a % b) + b) % b;

}


console.log(positiveMod(-7, 5)); // 3

```


`positiveMod` 함수는 먼저 `%` 연산을 수행하고, 그 결과가 음수일 경우 `b`를 더해줌으로써 결과를 양수로 만들어 줍니다.



댓글

이 블로그의 인기 게시물

js 스트링에서 요소 갯수 세기

STUDY

javascript cheatsheet