chapter16. Math

자바스크립트의 숫자는 모두 IEEE 754 64비트 부동소수점 숫자이다.
~기호는 그 값의 근삿값이라는 의미이다.
Math 객체의 프로퍼티를 메서드라 부르지 않고 함수라고 칭할 것

16.1 숫자 형식

자바스크립트의 숫자 형식 메서드는 모두 숫자가 아닌 문자열을 반환한다.
따라서 숫자 형식을 바꾸는 것은 실제로 표시하기 직전에 해아한다.
숫자를 저장하거나 계산할 때는 따로 형식을 지정하지 않은 숫자 타입이여야 한다.

16.1.1 고정 소수점

소수점 뒤 자릿수를 지정한느 형식을 원한다면 toFIxed()를 사용
이 숫자는 반올림이다.

1
2
3
4
5
const x = 19.51;
x.toFixed(3); //"19.510"
x.toFixed(2); //"19.51"
x.toFixed(1); //19.5
x.toFixed(0); //20

16.1.2 지수 표기법

toExponential()을 사용, 마찬가지로 반올림

1
2
3
4
5
6
const x = 3800.5;
x.toExponential(4); //3.8005e+3
x.toExponential(3); //3.801e+3
x.toExponential(2); //3.80e+3
x.toExponential(1); //3.8e+3
x.toExponential(0); //4e+3

16.1.3 고정 전체 자리수

소수점이 어디 나타나든 관계없이 숫자 몇 개로 표현하느냐가 중요하다면 toPrecison()을 사용
반올림

1
2
3
4
5
6
7
//## 16.1.3 고정 전체 자리수
let x = 1000;
x.toPrecision(5); //1000.0
x.toPrecision(4); //1000
x.toPrecision(3); //1.00e+3
x.toPrecision(2); //1.0e+3
x.toPrecision(1); //1e+3

16.1.4 다른 진수

toString(): 2진수나 8진수 16진수 표현등을 할때 사용

1
2
3
4
5
6
const x = 12;
x.toString(); //12
x.toString(10); //12
x.toString(16); //c
x.toString(8); //14
x.toString(2); //1100

16.1.5 고급 숫자 형식

다양한 형식으로 숫자를 표시해야할때

  • 수천자리의 아주 큰 숫자
  • 괄호를 쓰는 등 , 음수 표현을 다르게 해야 하는 경우
  • 공학 표기법
    Numeral.js(link:http://numeraljs.com/) 라이브러리를 사용

16.2 상수

Math 객체에는 몇 가지 아주 중요한 상수가 프로퍼티로 내장되어 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
//기본적인 상수
Math.E;
Math.PI;

//로그 관련 상수
Math.LN2;
Math.LN10;
Math.LOG2E;
Math.LOG10E;

//대수 관련 상수
Math.SQRT1_2;
Math.SQRT2;

16.3 대수 함수

16.3.1 거듭제곱

제곱 관련 기본 함수는 Math.pow이며 제곱근, 세제곱근, e의 거듭제곱 등 자주 쓰이는 연산에는 간편 함수가 있다.

표 16-1 제곱,제곱근 관련 함수

16.3.2 로그 함수

자연로그 함수는 Math.log이다. 상용로그를 log , 자연로그를 ln이라고 표현하는 언어도 있으므로, 자바스크립트의 log는 자연로그라고 기억해야한다.
ES6에서는 자주 쓰이는 상용로그 Math.log10 함수가 생김

표 16-2 함수

표 16-2 함수

16.3.3 기타 함수

절댓값, 부호, 배열의 최솟값/최댓값 등 숫자 관련 기타 함수

표 16-3 숫자 관련 기타 함수

16.3.4 의사 난수 생성

자바스크립트에서 의사 난수를 생성할 땐 Math.random()을 사용

  • 0이상 1미만의 숫자를 반환

표 16-4 의사 난수 생성

16.4 삼각함수

사인,코사인,탄젠트,아크 사인,아크 코사인,아크 탄젠트등
자바스크립트의 삼각함수는 모두 라인 값을 기준으로 한다.

표 16-5 삼각함수

16.5 쌍곡선함수

표 16-6 쌍곡선 함수

Comentarios

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×