본문 바로가기
STORAGE/JavaScript|TypeScript

Number 자료형 memo

by _wavy 2023. 5. 16.

숫자형과 메모리

  • 메모리는 `비트`로 이루어져 있음
  • 데이터는 2진법으로 변환된 후 메모리에 저장됨
  • 정수: 2진법으로 변환된 후 메모리에 저장. ex) 7 = 0b0111
  • 소수: 소수점 아래의 각 숫자를 2로 나눈 나머지를 사용하여 2진수로 변환된 후 메모리에 저장 ex) 0.625 = 0b0.101
  • 실수(float)를 나타내는 32칸 비트 중 첫번째 칸에 부호 저장됨. ex) +(0) / -(1)

▼직관적 학습을 돕는 사이트

https://www.binaryconvert.com/convert_float.html

 

Float (IEEE754 Single precision 32-bit) Converter

 

www.binaryconvert.com

 

숫자형의 문제

0.1 + 0.2 === 0.3 // false
Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2 // true
0.9999999... === 1 // true

 

무한 소수, 2진법으로 정확히 변환되지 않는 소수 등 현재 컴퓨터가 숫자를 처리하는 방식으로는 모든 실수를 완벽히 표현할 수 없음. 그래서 이러한 숫자형의 연산시에는 근사치를 이용함. 이는 개발자가 예상하지 못한 결과를 보일 수 있어 숫자형을 다룰 때 주의가 필요함.

댓글