JavaScript_숫자형 심화

cho·2023년 7월 17일

📝다양한 숫자 표기법

  1. 지수 표기법
    1e9 알파벳 왼편에 있는 수에 알파벳 오른쪽에 있는 수만큼 10의 거듭제곱을 곱하는 의미가 담겨져 있다. 알파벳 오른편에 있는 수가 음수이면 이 수만큼 10의 거듭제곱으로 나누라는 의미이다.
let millionaire = 1000000000;
let myNumber = 1e9;

console.log(millionaire); //1000000000
console.log(myNumber); //1000000000
console.log(millionaire === myNumber); // true

console.log(25e5 === 2500000);
console.log(5.3e3 === 5300);
console.log(-6.1e8 === -610000000);

console.log(16e-5 === 0.00016);
console.log(3.5e-3 === 0.0035);
console.log(-9.1e-5 === -0.000091);
  1. 16진법(Hexadecimal)
let hex1 = 0xff; //255
let hex2 = 0xFF; //255
  1. 8진법(Octal)
let octal = 0o377; //255
  1. 2진법(binary numeral system)
let binary = 0b11111111 //255

📝Number

  1. tofixed (0~100)
    소수를 다룰 때 사용하는 메소드이다. parameter안에 숫자값을 전달해주면 그만큼 소숫점 아래의 숫자를 고정해준다.
let myNumber = 0.3591;

console.log(myNumber.toFixed(3)); // 0.359

console.log(typeof myNumber.toFixed(3)); // string
//만약 더하기 연산자를 사용할 경우 문자열 연결이 될 수 있으니 유의해야한다.
console.log(Number(myNumber.toFixed(2))); // 0.36
console.log(+myNumber.toFixed(2))); // 0.36
//+연산자를 쓰면 Number()함수를 쓴 것과 같다.

소수점 아래 네번째 자릿값을 반올림하여 소숫점 세자리까지 출력해준다.
반대로 parameter로 전달하는 값이 숫자값을 초과하는 경우 0으로 대체된다.

  1. toString (2~36)
    parameter에 전달하는 진법으로 숫자를 변환해주는 메소드이다.
let myNumber = 255;

console.log(myNumber.toString(2)); // 11111111
console.log(myNumber.toString(8)); // 377
console.log(myNumber.toString(16)); // ff

//숫자에 바로 메소드 적용도 가능하다.
console.log(255..toString(2));
//정수형태의 숫자에 소수점을 하나만 사용하면 소수로 착각하기 때문에 점 두 개를 사용해야 한다. 
console.log((255).toString(2));

메소드 이름처럼 이 결과값도 문자열이다.

📝Math객체

  1. 절댓값 (Absolute Number)
    어떤 값의 '양수 (positive number)'버전이라고 할 수 있다.
console.log(Math.abs(-10)); // 10
console.log(Math.abs(10)); // 10
  1. 최댓값 (Maximum)
    Math.max 함수에 파라미터로 여러 수를 넘겨주면, 그중 가장 큰 값이 리턴된다.
console.log(Math.max(2, -1, 4, 5, 0)); // 5
  1. 최솟값 (Minimum)
    Math.min 함수에 파라미터로 여러 수를 넘겨주면, 그중 가장 작은 값이 리턴된다.
console.log(Math.min(2, -1, 4, 5, 0)); // -1
  1. 거듭제곱 (Exponentiation)
    Math.pow(x, y)를 하면 x의 y승의 결괏값이 리턴된다.
console.log(Math.pow(2, 3)); // 8
console.log(Math.pow(5, 2)); // 25
  1. 제곱근 (Square Root)
    '제곱근(square root)'은 '제곱'의 반대라고 생각할 수 있다. 5의 제곱이 25이기 때문에, 25의 제곱근은 5이다. 7의 제곱이 49이기 때문에, 49의 제곱근은 7이다.
console.log(Math.sqrt(25)); // 5
console.log(Math.sqrt(49)); // 7
  1. 반올림 (Round)
    Math.round(x)를 하면 x의 반올림된 값이 리턴된다. 소수점 부분이 0.5 이상이면 가장 가까운 정숫값으로 올라가고, 소수점 부분이 0.5 미만이면 가장 가까운 정숫값으로 내려간다.
console.log(Math.round(2.3)); // 2
console.log(Math.round(2.4)); // 2
console.log(Math.round(2.49)); // 2
console.log(Math.round(2.5)); // 3
console.log(Math.round(2.6)); // 3
  1. 버림과 올림 (Floor and Ceil)
    Math.floor(x)을 하면 x의 버림 값이, Math.ceil(x)을 하면 x의 올림 값이 리턴된다. 이 경우, 소수 부분이 얼마 인지와는 상관이 없다.
console.log(Math.floor(2.4)); // 2
console.log(Math.floor(2.49)); // 2
console.log(Math.floor(2.8)); // 2
console.log('-'); // -
console.log(Math.ceil(2.4)); // 3
console.log(Math.ceil(2.49)); // 3 
console.log(Math.ceil(2.8)); // 3
  1. 난수 (Random)
    Math.random을 하면 0 이상 1 미만의 값이 랜덤으로 리턴된다.
console.log(Math.random()); // 0.21458369059793236

📝자바스크립트의 실수

십진수의 수를 컴퓨터가 이진수로 계산하다보면 원하는 결과값이 나오지 않을 때가 있다. 이럴 때
toFixed method 혹은 round method를 사용할 수 있다.

let sum = 0.1+0.2;

console.log(Number(sum.toFixed(1)));
console.log(+sum.toFixed(1));
console.log(Math.round(sum*10) / 10);

3개의 댓글

comment-user-thumbnail
2023년 7월 18일

잘 읽었습니다. 좋은 정보 감사드립니다.

1개의 답글
comment-user-thumbnail
2023년 7월 18일

훌륭한 글이네요. 감사합니다.

답글 달기