double #10
-
|
실수 타입 |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
|
JavaScript에서는 모든 숫자가 배정밀도 64비트 부동소수점 형식(double) 으로 표현된다
첫 번째 비트는 부호를 나타낸다. 0은 양수, 1은 음수를 나타낸다.
부호 비트 뒤의 11비트는 지수 부분이다. 이 부분은 숫자의 크기와 지수를 나타내며, 지수는 2의 보수 형식으로 표현된다.
부호 비트와 지수 부분을 제외한 나머지 52비트는 가수 부분이다. 이 부분은 숫자의 정밀도를 나타낸다.
부동소수점 형식에서는 특별한 값으로 NaN(Not a Number)과 Infinity가 있다. 계산 결과가 유효하지 않을 때 NaN이 발생하고, 어떤 수를 0으로 나눌 때 Infinity가 발생한다. 64비트 부동소수점 형식은 넓은 범위의 숫자를 표현할 수 있지만, 숫자가 커지면 정밀도가 감소할 수 있다. 특히, 정수 부분이 크거나 작은 경우에는 정밀도 손실이 발생할 수 있다. 또한 부동소수점 형식에서는 일부 연산이 정확한 결과를 제공하지 않을 수 있으며, 부동소수점 연산에서 발생하는 오차를 고려해야 한다. |
Beta Was this translation helpful? Give feedback.
JavaScript에서는 모든 숫자가 배정밀도 64비트 부동소수점 형식(double) 으로 표현된다
=> 모든수를 실수로 처리
JavaScript에서의 number 타입은 64비트 이진 형식으로 표현된다. 이 64비트는 부호 비트, 지수 부분, 가수 부분으로 나누어져 있다.
부호 비트
첫 번째 비트는 부호를 나타낸다. 0은 양수, 1은 음수를 나타낸다.
지수 부분
부호 비트 뒤의 11비트는 지수 부분이다. 이 부분은 숫자의 크기와 지수를 나타내며, 지수는 2의 보수 형식으로 표현된다.
가수 부분
부호 비트와 지수 부분을 제외한 나머지 52비트는 가수 부분이다. 이 부분은 숫자의 정밀도를 나타낸다.
NaN과 Infinity
부동소수점 형식에서는 특별한 값으로 NaN(Not a Number)과 Infinity가 있다. 계산 결과가 유효하지 않을 때 NaN이 발생하고, 어떤 수를 0으로 나눌 때 Infinity가 발생한다.
64비트 부동소수점 형식은 넓은 범위의 숫자를 표현할 수 있지만, 숫자가 커지면 정밀도가 감소할 수 있다. 특히, 정수 부분이 크거나 작은 경우에는 정밀도 손실이 발생할 수 있다. 또한 부동소수점 형식에서는 일부 연산이 정확한 결과를 제공하지 않을 수 있으며, 부동소수점 연산에서 발생하는 오차를 고려해야 한다.