[JS] 숫자, 수학 method(Number, Math)

2022. 9. 7. 18:20· JavaScript
목차
  1. toString()
  2. Math

toString()

// 우리가 실생활에서 사용하는 숫자는 10진수
// 개발하다 보면 2진수나 색상 표현을 위해 16진수가 필요할 때가 있음

let num = 10;

num.toString(); // "10"
num.toString(2); // "1010"

let num2 = 255;

num2.toString(16); // "ff"

 

Math

// 자바스크립트에는 수학과 관련된 프로퍼티와 메소드를 가지고 있는 Math라는 내장 객체가 있음
// 대표적 프로퍼티의 예로 Math.PI가 있는데 원주율을 보여줌

// Math.PI
Math.PI; // 3.141592653589793

// Math.ceil() : 올림
let num1 = 5.1;
let num2 = 5.7;

Math.ceil(num1); // 6
Math.ceil(num2); // 6

// Math.floor() : 내림
let num1 = 5.1;
let num2 = 5.7;

Math.floor(num1); // 5
Math.floor(num2); // 5

// Math.round() : 반올림
let num1 = 5.1;
let num2 = 5.7;

Math.floor(num1); // 5
Math.floor(num2); // 6

// 소수점 자리수
// 그런데 작업을 하다 보면 소수점까지 표현해야 할 때가 더 많음
// 요구사항 : 소수점 둘째자리까지 표현(셋째 자리에서 반올림)

let userRate = 30.1234;

userRate * 100; // 3012.34
// 100을 곱하고

Math.round(userRate * 100); // 3012
// 반올림

Math.round(userRate * 100) / 100; // 30.12
// 다시 100으로 나눔
// 소수점 둘째 자리까지 표현!

// toFixed() : 숫자를 인수로 받아 그 숫자 만큼 소수점 이하 개수에 반영
// 훨씬 간단

let userRate = 30.1234;

userRate.toFixed(2); // "30.12"
userRate.toFixed(0); // "30"
userRate.toFixed(6); // "30.123400"
// 만약 0이거나 기존 소수점 개수보다 크면 나머지 0으로 채움

// 그런데 toFixed()는 문자열을 반환한다는 점 주의
// 그래서 반환받은 이후 Number()를 이용해 숫자로 변환 후 작업하는 경우가 많음
userRate.toFixed(2); // "30.12"
Number(userRate.toFixed(2)); // 30.12

// isNaN()
// NaN(Not a Number)인지 아닌지 판단
// isNaN만이 NaN인지 아닌지 판단 가능
// 헷갈리지만 외워 두어야 함

let x = Number('x'); // NaN

x == NaN; // false
x === NaN; // false
NaN == NaN; // false
// NaN은 신기하게도 자기 자신과도 같지 않다고 판단

isNaN(x); // true
isNaN(3); // false

// parselnt() : 문자열을 숫자로 바꿈
// Number()와 다른 점은 문자가 혼용되어 있어도 동작한다는 점
// Number()는 NaN을 반환하지만 parseInt()는 읽을 수 있는 부분까지는 읽고 문자를 만나면 숫자를 반환
// 그래서 parseInt()는 숫자로 시작하지 않으면 parseInt()는 NaN을 반환
// 그런데 parseInt()는 두 번째 인수를 받아서 진수를 지정할 수 있음

let margin = '10px';

parseInt(margin); // 10
Number(margin); // NaN

// 숫자로 시작하지 않는 경우

let redColor = 'f3';
parseInt(redColor); // NaN

// 진수 지정

let redColor = 'f3';
parseInt(redColor); // NaN

let redColor = 'f3';
parseInt(redColor, 16); // NaN
// f로 시작했지만 두 번째 인수에 16을 전달해 16진수로 바꿈

parseInt('11', 2); // 3

// parseFloat()
// parseFloat()는 parseInt()와 동일하게 동작하지만 부동소수점을 반환함
// parseInt()는 소수점 이하는 무시하고 정수만 반환

let padding = '18.5%';

parseInt(padding); // 18
parseFloat(padding); // 18.5

// Math.random()
// 0 ~ 1 사이 무작위 숫자 생성
// 범위는 0부터 1 사이의 무작위 숫자
Math.random(); // 0.26027823967117425

// 1 ~ 100 사이 임의의 숫자를 뽑고 싶다면?

Math.floor(Math.random() * 100) + 1;
// 1. Math.random()으로 숫자를 생성 - 0.6789
// 2. 100을 곱함 - 67.89
// 3. Math.floor()를 이용해 소수점 이하 버림 - 67
// 4. 1을 더해줌(랜덤 숫자가 0.0~가 나올 수 있어서) - 68

// Math.max() / Math.min()
Math.max(1, 4, -1, 5, 10, 9, 5.54); // 10
Math.min(1, 4, -1, 5, 10, 9, 5.54); // -1

// Math.abs() : 절대값
// abs는 absolute의 약자
Math.abs(-1); // 1

// Math.pow(n, m) : 제곱
// pow는 power의 약자
Math.pow(2, 10); // 1024

// math.sqrt() : 제곱근
// sqrt는 square root의 약자
math.sqrt(16); // 4
저작자표시 비영리 변경금지 (새창열림)
  1. toString()
  2. Math
'JavaScript' 카테고리의 다른 글
  • [JS] 논리 연산자(Logical Operators)
  • [JS] 연산자(Operators)
  • [JS] Symbol
  • [JS] Computed Property, Object Methods
카버
카버
카버
카버의 코딩일기
카버
  • All (414)
    • JavaScript (36)
    • CSS (1)
    • TypeScript (6)
    • React (17)
    • Redux (6)
    • Next.js (13)
    • Gatsby (2)
    • 코딩 테스트 (305)
      • programmers (238)
      • Baekjoon (51)
      • CroCoder (15)
    • ETC (28)
      • Error (9)
      • CS (8)
      • Terminal (2)
      • GitHub (1)
hELLO · Designed By 정상우.v4.2.2
카버
[JS] 숫자, 수학 method(Number, Math)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.