자바스크립트 수치 활용

(2018-11-10)
1. 자바스크립트 숫자형 데이터타입자바스크립트 언어는, 숫자형 데이터타입이 하나 뿐으로,
     - IEEE 754 배정도(64 비트) 부동소수점 만 지원 함
        . 즉, 내부적으로, 8 바이트 (64 비트 부동소수점) 로써 저장/처리 됨

  ㅇ 타 프로그래밍 언어에서는 여러 숫자 데이터타입을 지원하지 만,
     - 자바스크립트는 단순성을 위해 숫자형에 하나의 데이터타입 만 가능 함


2. 자바스크립트 숫자 표현정수 숫자 표현 (4가지)
     - 10진수 : 123
     - 16진수 : 0x123 (숫자 앞에 0x를 붙임)
     - 8진수  : 0o123 (숫자 앞에 0o를 붙임)
     - 2진수  : 0b101 (숫자 앞에 0b를 붙임)

  ㅇ 실수 숫자 표현 (10진수에 한 함)
     - 고정소수점 표현 : 0.123   (정수부가 0일때는 0 생략 가능)
     - 부동소수점 표현 : 1.02e123 또는 1.02E123 (1.02x1023)

  ㅇ 특별한 숫자 표현
     - Infinity                : +∞                   (전역변수)
     - NaN                     : Not a Number,부정 값  (전역변수)

     - Number.POSITIVE_INFINTY : +∞                   (Number 객체프로퍼티)
     - Number.NEGATIVE_INFINTY : -∞                   (Number 객체프로퍼티)
     - Number.MAX_VALUE        : 표현 가능 최대값      (Number 객체프로퍼티)
     - Number.MIN_VALUE        : 표현 가능 최소값      (Number 객체프로퍼티)
     - Number.NaN              : Not a Number,부정 값  (Number 객체프로퍼티)


3. 자바스크립트 수치 다루기문자열을 수치로 변환
     - parseInt();      // 문자열을 정수 변환
        . parseInt(num,base);  // base로 지정된 진법으로 해석하여 10진수 정수 변환
     - parseFloat();    // 소수점,지수 표현까지 포함한 문자열을 수치 변환
     - Number();        // Number() 함수에 의한 수치 변환

  ㅇ 정수 근사 변환
     - toFixed();       // 소수점 이하 지정된 자릿수로 반올림
        . 例) const x=19.51; x.toFixed(3) => 19.510  x.toFixed(0) => 20
     - toPrecision();   // 수치 전체를 지정된 유효자리수가 되도록 반올림
        . 例) 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
     - ceil();          // 천장 함수
     - floor();         // 마루 함수
     - round();         // 반올림

  ㅇ 정수 진법 변환
     - toString();      // 지정한 기수법(진법 체계,2부터 36까지 가능)에 의한 문자열로 변환
        . 例) numObject.toString(2) => 2진수, numObject.toString(16) => 16진수 등

  ㅇ 지수 변환
     - toExponential(); // 매개변수에 따라 소수점 뒤 숫자로써 반올림
        . 例) const x=3800.5; x.toExponential(4) => 3.8005e+3 
                              x.toExponential(3) => 3.801e+3  x.toExponential(0) => 4e+3

  ㅇ 기타 기초
     - min(num1,num2);  // num1,num2 중 적은 값
     - max(num1,num2);  // num1,num2 중 큰 값
     - pow(base,p);     // 거듭제곱(basep)
     - random();        // 0~1 사이의 난수를 반환

     - isFinite();      // 유한값 여부
     - isInteger;       // 정수 여부
     - isNaN();         // 수치인지 아닌지 판단


4. Math 객체

  ㅇ Math 객체프로퍼티
     - Math.E       : 자연로그밑 수 (자연상수)
     - Math.LN2     : 2의 자연로그
     - Math.LN10    : 10의 자연로그
     - Math.LOG2E   : 2를 밑수로 한 상용로그 e의 값
     - Math.LOG10E  : 10을 밑수로 한 상용로그 e의 값
     - Math.PI      : 원주율
     - Math.SQRT1_2 : 1/2의 제곱근
     - Math.SQRT2   : 2의 제곱근

  ㅇ Math 객체메소드
     - 기초
        . Math.abs(x)   : |x| (x의 절대값)
        . Math.ceil(x)  : x의 천장함수
        . Math.floor(x) : x의 마루함수
        . Math.trunc(x) : x의 정수부
        . Math.round(x) : x의 반올림
        . Math.min(x,y) : x,y 중 작은 값
        . Math.max(x,y) : x,y 중 큰 값

     - 지수,거듭제곱,제곱근 등
        . Math.exp(x)   : ex (e의 x 거듭제곱)
        . Math.expm1(x) : ex-1 (e의 x 거듭제곱에서 1을 뺀 값)
        . Math.pow(x,y) : xy
        . Math.sqrt(x)  : √x (x의 제곱근), Math.pow(x,0.5)와 같음
        . Math.cbrt(x)  : x1/3 (x의 세제곱근)
        . Math.hypot(x,y,...) : 인수들의 제곱 합의 제곱근

     - 삼각함수
        . Math.sin(x)  : sin(x) (x의 사인, 매개변수 x에 라디안 대입해야 함)
        . Math.cos(x)  : cos(x) (x의 코사인, 매개변수 x에 라디안 대입해야 함)
        . Math.tan(x)  : tan(x) (x의 탄젠트, 매개변수 x에 라디안 대입해야 함)

     - 삼각함수역함수
        . Math.asin(x)  : arcsin(x) (x의 아크 사인, 결과가 라디안)
        . Math.acos(x)  : arccos(x) (x의 아크 코사인, 결과가 라디안)
        . Math.atan(x)  : arctan(x) (x의 아크 탄젠트, 결과가 라디안)
        . Math.atan2(y,x) : x축에서 점(x,y)까지의 시계 반대방향 각도라디안으로 나타낸 값

     - 쌍곡선함수
        . Math.sinh(x)  : sinh(x) (x의 하이퍼볼릭 사인, 매개변수 x에 라디안 대입해야 함)
        . Math.cosh(x)  : cosh(x) (x의 하이퍼볼릭 코사인, 매개변수 x에 라디안 대입해야 함)
        . Math.tanh(x)  : tanh(x) (x의 하이퍼볼릭 탄젠트, 매개변수 x에 라디안 대입해야 함)

     - 쌍곡선함수역함수
        . Math.asinh(x) : arcsinh(x) (x의 하이퍼볼릭 아크 사인, 결과가 라디안)
        . Math.acosh(x) : arccosh(x) (x의 하이퍼볼릭 아크 코사인, 결과가 라디안)
        . Math.atanh(x) : arctanh(x) (x의 하이퍼볼릭 아크 탄젠트, 결과가 라디안)

     - 로그
        . Math.log(x)   : ln(x) (x의 자연로그)
        . Math.log2(x)  : log2(x) (x의 밑수가 2인 상용로그)
        . Math.log10(x)  : log10(x) (x의 밑수가 10인 상용로그)
        . Math.log1p(x)  : log(x+1)


[JS 활용] 1. JS 활용 2. JS 문자열 활용 3. JS 수치 활용 4. JS 정규표현식

 
        최근수정     요약목록(시험중)     참고문헌