나누기 연산자

김동현·2023년 12월 24일

Question

목록 보기
10/15
post-thumbnail

나눈다는 것

어떤 수를 어떤 수로 나눈다는 것은 두 가지 의미를 가질 수 있다..

6 나누기 3
6 ➗ 3

🤔 왜 그럴까?
✅ 곱하기는 교환법칙이 성립하기 때문이다.
-> 즉, 3 * 2 = 2 * 3

  1. 6을 2개씩 묶었을 때 몇 묶음이 나올까요? -> 2 * ㅁ = 6
    • 즉, 어떤 수를 몇 번 더해야 6이 나올까요?
  2. 어떤 수를 두번 곱해야 6이 나올까요? -> ㅁ * 2 = 6
    • 즉, 몇 개가 될 지 모르지만 어떤 수를 2번 더해야 6이 나올까요?

위와 같은 이유 때문에 나눗셈은 두 가지의 경우를 가지게 되는 것이다.

1 ➗ 1/2을 설명해보자

위의 경우의 수를 대입해보자

  1. 1을 1/2개씩 묶었을 때 몇 묶음이 나올까? -> 1/2 * ㅁ = 1
    • 1/2을 몇 번 더해야 1이 나올까?
    • 1/2에 무엇을 곱해야 1이 나올까?
  2. 어떤 수에 1/2을 곱해야 1이 나올까?
    • 어떤 수를 반으로 나눠야 1이 나올까?

왼쪽의 원 하나의 크기가 오른쪽의 반원과 같다.

🤔 정리 해보자

나눗셈을 해석하면 두 가지 경우가 나올 수있다.
-> 왜?? 곱셈은 교환법칙이 성립하기 때문이다.

두가지 경우를 해석하면 아래와 같다.
1. 몇 개씩 묶어야 되는가?
2. 묶인 게 몇 개 있는가?

자바스크립트 나누기 연산자

JavaScript에는 정수와 부동 소수점 숫자를 모두 포함하는 단일 숫자 유형('number')이 있다.
즉, 자바스크립트의 숫자는 항상 64비트 부동 소수점이다! <- 64비트 부동 소수점(64-bit float)은 실수를 나타내는 데이터 형식 중 하나이다.

정수와 실수를 구분하기 위한 노력(스택오버플로우)

console.log(12 / 2);  // 6
console.log(3 / 2);   // 1.5
console.log(6 / '3'); // 2 <- '3' to be 3 암시적 형변환 
console.log(2 / 0);   // Infinity

즉, 정수 몫만 얻으려는 경우에 Math.floor() 내장 함수로 내림을 해주어야 한다.

console.log(Math.floor(3 / 2));   // 1

🤔 Question

헷갈렸던 것이 나누기 연산자는 오른쪽 피연산자를 제수로 하여 을 구한다고 되어 있다.
-> 🤔 1.5가 나오면 안 되고, 정수부 1이 나와야 되는 것 아닌가?하는 의문이 있었다.

위키 백과에는 정의에 경우에 따라 정수부만 말하기도 한다.로 되어있었다.

나무 위키에서는 조금 더 상세하게 알려주었는데 유리수, 실수(64bit float point), 복소수에서는 나머지가 존재하지 않고 0을 제외한 모든 수가 몫이 될 수 있다고 했다!

즉,
🤯 MDN에서 나온 예시는 맞는 것 같다! 3/2의 몫은 1.5이다!
왜냐하면, Javascript의 number 타입은 실수의 개념이기 때문이다.

참고자료

나눗셈의 두가지 의미
나누기 연산자 MDN
위키백과 몫
나무위키 몫
자바스크립스 number 타입

profile
달려보자

0개의 댓글