Javascript - Number형 타입 변수

Seong Ho Kim·2024년 1월 26일
0

Javascript

목록 보기
7/21
post-thumbnail

1. 숫자형(Number) 타입 변수

  • 숫자형 변수는 다양한 형태의 숫자를 표현해서 나타내는 값을 말하는 변수로 Javascript에선 숫자의 형태를 구체적으로 나누어 정의하지 않는다. → (특히 Java와 같은 C#, C++ 언어들은 int, float, long, short, byte로 정의해서 숫자를 표현해서 사용한다.)
  • 1번째 예제
    // 1. 진수
    let integer = 10; // 10진수
    let hex = 0xa; // 16진수
    let binary = 0b1010; // 2진수
    let octal = 0o12; // 8진수 
    console.log(integer, hex, binary, octal); // 10 10 10 10
    
    // 2. 음의 정수, 지수, 소수
    let negative = -10; // 음의 정수
    let indices = 1.0e1; // 지수
    let double = 10.02; // 소수
    console.log(negative, indices, double); // -10 10 10.02
    • 첫번째 예제코드를 보면 출력되는 결과에 따라 변수에 할당된 숫자형 값을 가져올때는 변수에 할당할때 마다 숫자 형태에 상관없이 전부 다 10진수 형태로 변환되서 출력됨을 확인할 수 있다.
  • 2번째 예제
    let IsInfinity = 10 / 0;
    console.log(IsInfinity); // IsInfinity
    
    let IsNaN = 10 / "칠";
    console.log(IsNaN); // IsNaN
    • 간혹 숫자형 코드 입력후 콘솔창에 infinity와 NaN과 같은 특수한 표시를 나타내주는 경우도 있는데 infinity, NaN이 대표적이다.
      • Javascript 에서는 무한하게 나눠지는 숫자의 경우에는 infinity로 표시하고 숫자가 아닌 “칠” 처럼 일반 글로 표시된 경우에는 연산을 처리하는 과정중 잘못된 입력을 받았기 때문에 NaN으로 표시됨을 알 수 있다.
    • 무한(infinity) 사용 예제
      // 무한(infinity) 예제
      console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
      console.log(Number.MIN_VALUE); // 5e-324
      
      console.log(Infinity); // Infinity
      console.log(Number.POSITIVE_INFINITY); // Infinity
      
      console.log(-Infinity); // -Infinity
      console.log(Number.NEGATIVE_INFINITY); // -Infinity
      • Javascript에서는 다른 언어들에 비해 구체적으로 숫자형식을 정의하지 않기 때문에 모든 숫자를 정확하게 표현할 수 없다. 따라서 표현할 수 있는 숫자의 범위를 넘어가면 무한대(infinity)로 표기해서 숫자를 표현한다
        • 사용범위는 Number.MAX_VALUE, Number.MIN_VALUE로 최대, 최소 값을 표시하고 Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY로 양수, 음수의 무한대 값을 가져와 사용범위를 표시할 수 있다.
    • NaN 사용 예제
      console.log(0 / 0); // NaN
      console.log(parseInt('a')); // NaN
      console.log('a' * 0); // NaN
      
      console.log(typeof NaN === "number"); // true
      • NaN(Not a Number)은 연산과정에서 잘못된 입력값을 받았을때 나타내는 표기를 말하며, 주로 메서드의 잘못된 입력값을 받았을때 반환된다.
        • typeof 키워드는 해당 자료형 타입을 어떤 자료형인지 구분할 수 있도록 도와주는 키워드 이며, NaN의 typeof는 number(숫자형 타입변수) 임을 알 수 있다.
  • 3번째 예제
    let num = 0.1 + 0.2;
    console.log(num); // 0.30000000000000004
    • 다음과 같이 콘솔창에 0.3이 아닌 0.30000000000000004 라고 출력이 되는 것을 확인할 수 있다. 이러한 결과가 나오는 이유는 모든 컴퓨터가 숫자를 저장할때 2진수로 변환해서 저장하게 되는데, 숫자 0.1은 0001100110011…을 계속 반복하며 출력함으로 인해서 유한한 값으로 나누어 떨어지지 않기 때문이다. → (근사치의 값으로 0.1이라는걸 2진수로 저장하게 되고 내부적인 처리방법으로 인해 소수점을 연산할때 종종 근사치의 값으로 나오는 경우가 많다)
  • 부동 소수점 예제
    let num = 1.0;
    console.log(num); // 1
    
    let num2 = 1.;
    console.log(num2); // 1
    
    let num3 = .1;
    console.log(num3); // 0.1
    
    let num4 = 1;
    console.log(num4); // 1
    
    let num5 = 1.1111111111111111111111111111111111111111111111;
    console.log(num5); // 1.1111111111111112
    • Javascript 에서는 다른 언어들에 비해 소수 연산이 정확하지 않으므로 다양한 방법을 이용해서 계산하지만 소수를 정의하기 위해서 소수점 뒤에 숫자가 없다면 소수점은 무시되고 숫자(정수)로만 표시된다.
      • num5 변수처럼 그 이상의 숫자는 반올림 처리됨 (소수는 정수를 포함한 32비트 까지 표현이 가능)
profile
안녕하세요 Junior UIUX Designer 입니다 😊

0개의 댓글

Powered by GraphCDN, the GraphQL CDN