[JS] 객체 - 숫자형

yuyeong·2024년 11월 20일

JS

목록 보기
9/10
post-thumbnail

자바스크립트는 두 가지 숫자형을 지원한다:

  1. 일반 숫자형: 64비트 형식의 IEEE-754 표준으로 표현된 배정밀도 부동소수점 숫자.
  2. BigInt: 253 이상의 큰 정수를 표현할 수 있는 숫자형.

숫자를 입력하는 다양한 방법

큰 숫자

  • e 표기법: 숫자 뒤에 e를 붙이고 10의 거듭제곱을 사용해 표현.

    let billion = 1e9; // 10억
    alert( 7.3e9 );    // 73억
  • 예시:

    • 1e3 === 1 * 1000 (1에 10³ 곱함)
    • 1e-6 === 1 / 1000000 (1을 10⁶으로 나눔)

다양한 진법

16진수, 2진수, 8진수

  • 16진수: 0x 접두사.
  • 2진수: 0b 접두사.
  • 8진수: 0o 접두사.
    alert( 0xff ); // 255
    alert( 0b11111111 ); // 255
    alert( 0o377 ); // 255

toString(base)

  • 숫자를 문자열로 변환하며, 원하는 진법으로 표현 가능.
    let num = 255;
    alert( num.toString(16) ); // "ff"
    alert( num.toString(2) );  // "11111111"

어림수 구하기

내장 함수

함수설명
Math.floor소수점 이하 내림
Math.ceil소수점 이하 올림
Math.round소수점 이하 반올림
Math.trunc소수점 이하 버림 (소수부 무시)

소수점 n번째 자리 어림수

  1. 곱하고 나누기:

    let num = 1.23456;
    alert( Math.floor(num * 100) / 100 ); // 1.23
  2. toFixed(n):

    • 원하는 소수점 자리까지 반올림한 문자열 반환.
    let num = 12.345;
    alert( num.toFixed(2) ); // "12.35"

부정확한 계산

정밀도 손실

  • 예시:

    alert( 0.1 + 0.2 ); // 0.30000000000000004
  • 해결 방법:

    • toFixed 사용:
      let sum = 0.1 + 0.2;
      alert( +sum.toFixed(2) ); // 0.3

특수 숫자 값

  1. Infinity-Infinity: 아주 큰 값 또는 작은 값을 나타냄.
  2. NaN (Not-A-Number): 잘못된 연산의 결과.

숫자 검사 함수

  • isNaN(value): 값이 NaN인지 확인.

    alert( isNaN("str") ); // true
  • isFinite(value): 유한 숫자인지 확인.

    alert( isFinite("15") ); // true

숫자 파싱

parseIntparseFloat

  • 숫자 문자열에서 숫자를 추출.

    alert( parseInt('100px') );  // 100
    alert( parseFloat('12.5em') ); // 12.5
  • parseInt는 두 번째 인수로 진수를 지정 가능:

    alert( parseInt('ff', 16) ); // 255

난수 생성

  1. Math.random():

    • 0과 1 사이의 난수(1 제외).
    alert( Math.random() ); // 예: 0.123456
  2. 랜덤 정수 생성:

    function randomInteger(min, max) {
      return Math.floor(min + Math.random() * (max - min + 1));
    }
    alert( randomInteger(1, 5) ); // 1, 2, 3, 4, 5 중 하나

기타 수학 함수

  • Math.max / Math.min: 최대값/최솟값 반환.

    alert( Math.max(3, 5, -10, 0, 1) ); // 5
  • Math.pow: 거듭제곱 계산.

    alert( Math.pow(2, 10) ); // 1024
  • Math.random(): 난수 생성.


요약

  1. 숫자 입력 방식:

    • e 표기법으로 큰 숫자 표현 가능.
    • 다양한 진법(16진수, 2진수, 8진수) 지원.
  2. 어림수:

    • Math.floor, Math.ceil, Math.round, Math.trunc 사용.
    • toFixed(n)로 소수점 자리수 고정 가능.
  3. 정밀도 손실:

    • 소수 계산에서 toFixed로 해결.
  4. 숫자 파싱:

    • parseIntparseFloat로 문자열에서 숫자 추출 가능.
    • 진수 변환 지원.
  5. 수학 함수:

    • Math.max, Math.min, Math.pow, Math.random 등 제공.
profile
이겨내

0개의 댓글