+ - / * %
(위의 연산들은 다른 프로그래밍에서도 일반적으로 사용된다.)
자바스크립트는 숫자에 대해 64비트 부동소수점 표현을 사용한다.
부호 비트가 0이면 0또는 양수를 나타내고, 부호 비트가 1이면 음수를 나타낸다.
지수부는 지수 값 e를 나타낸다.
가수부는 분수 값을 나타낸다.
사람은 대게 십진수를 쉽게 이해한다. 때문에 이진수에 십진분수를 적용하면서 부동소수점 체계가 반올림 오류를 일으킬 수 있다.
자바스크립트에서 0.1 + 0.2 === 0.3
은 false이다.
이진 표기법으로 십진수를 표현할 때 무한 개의 수가 필요할 때가 있다. 0.1을 계산하려 할 때 긴 나눗셈이 끝나지 않고 계속되어 무한 개의 수가 필요하게 된다. 무한 개의 수로 계산하는 것을 적당한 위치에서 중단하고 반올림 처리를 하여 십진수로 나타내므로, 정확한 계산이 이루어지지 않는 것이다.
위의 문제를 해결하는 데 도움이 되는 Number 객체의 내장 속성이 있다.
The Number.EPSILON property represents the difference between 1 and the smallest floating point number greater than 1.
Number.EPSILON은 두 개의 표현 가능한 숫자 사이의 가장 작은 간격을 반환한다. 이는 부동소수점 근사치를 활용해 분수가 제대로 표현되지 않는 문제를 해결하는 데 유용하다.
The Number.MAX_SAFE_INTEGER constant represents the maximum safe integer in JavaScript (253 - 1).
가장 큰 정수를 반환한다.
The Number.MAX_VALUE property represents the maximum numeric value representable in JavaScript.
The Number.MIN_SAFE_INTEGER constant represents the minimum safe integer in JavaScript (-(253 - 1)).
The Number.MIN_VALUE property represents the smallest positive numeric value representable in JavaScript.
The global property Infinity is a numeric value representing infinity.
The Number.POSITIVE_INFINITY property represents the positive Infinity value.
The Number.NEGATIVE_INFINITY property represents the negative Infinity value.
-Infinity
< Number.MIN_SAFE_INTEGER
< 0
< Number.MIN_VALUE
< Number.MAX_SAFE_INTEGER
< Number.MAX_VALUE
< Infinity
숫자가 소수인지 판단하는 알고리즘은 숫자와 관련하여 가장 많이 논의된 알고리즘 중 하나다.
-Infinity
< Number.MIN_SAFE_INTEGER
< 0
< Number.MIN_VALUE
< Number.MAX_SAFE_INTEGER
< Number.MAX_VALUE
< Infinity