자바스크립트 Math
2018-03-05
자바스크립트의 숫자는 모두 IEEE 754 64비트 부동소수점 숫자이다. 자바스크립트는 복잡한 숫자나 아주 큰 숫자는 지원하지 못한다. 전문적인 수식 구조나 알고리즘이 필요하다면 Math.js를 사용하라.
1. 숫자 형식
- 자바스크립트의 숫자 형식 메서드는 숫자가 아니라 문자열을 반환한다.
- 따라서 숫자 형식을 바꾸는 것은 실제로 표시하기 직전에 수행해야 하며, 숫자를 저장하거나 계산할 때는 따로 형식을 지정하지 않은 숫자 타입이어야 한다.
1-1. 고정 소수점
소수점 뒤 자릿수를 지정하려면 toFixed()를 사용. toFixed()는 버림이 아니라 반올림이다.
toFixed() 예제
1-2. 지수 표기법
toExponential()을 사용한다. 반올림한 결과가 출력됨
toExponential() 예제
1-3. 유효 자릿수
toPrecision()을 사용하여 숫자 개수를 제한한다.
toPrecision() 예제
1-4. 다른 진수
2진수나 8진수, 16진수 표현을 원한다면 toString()에 기수를 매개변수로 쓰면 된다.
toString() 예제
1-5. 고급 숫자 형식
수천 자리의 아주 큰 숫자, 괄호를 쓰거나 음수 표현을 해야하는 경우, 공학 표기법 등과 같은 경우에는 Numberal.js 라이브러리를 추천한다
2. 상수
Math 객체에는 몇가지 중요한 상수가 내장되어 있다. 자세한 내용은 Mozilla - Math객체 Properties 를 참고하라
3. 대수 함수
3-1. 거듭 제곱
- Math.pow(x,y) : x의 y 제곱 한 수를 반환
- Math.sqrt(x) : 숫자의 제곱근을 반환. 만약 x가 음수라면 NaN을 반환
- Math.cbrt(x) : 숫자의 세제곱근을 반환
3-2. 로그함수
- Math.log(x) : 숫자의 자연 로그를 반환
- Math.log10(x) : 주어진 숫자는 log10(숫자)로 계산한다. 만약 숫자가 음수라면 NaN를 반환
- Math.log2(x) : 주어진 숫자는 log2(숫자)로 계산한다. 만약 숫자가 음수라면 NaN를 반환
3-3. 기타함수
- Math.abs(x) : 숫자의 절대값을 반환
- Math.sign(x) : x의 부호를 반환. x가 음수면 -1, 양수면 1, 0이면 0
- Math.ceil(x) : x의 올림. x보다 크거나 같은 정수 중에 가장 작은 수
- Math.floor(x) : x의 내림. x보다 작거나 같은 정수 중에 가장 큰 수
- Math.trunc(x) : x의 버림. 소수점 아래 부분을 모두 제거
- Math.round(x) : x의 반올림
- Math.min(x1, x2, …) : 매개변수 중 최소값
- Math.max(x1, x2, …) : 매개변수 중 최대값
- Mozilla - Methods 그 외 예제는 MDN 가이드를 참고한다.