숫자, 수학 메소드(Number, Math)

라용·2022년 7월 31일
0

인프런 강의 자바스크립트 중급 - 코딩앙마 를 듣고 정리한 내용입니다.

실생활에서 사용하는 숫자는 10진수 인데 개발에서는 2진수나 16진수(색상표현)을 쓸 일이 있습니다. 그럴 때 toString() 을 사용합니다.

// toString() 은 기본적으로 숫자를 문자로 바꿉니다.

let num = 10;
num.toString(); // "10"

// 이때 () 안에 숫자를 쓰면 그 숫자의 진법으로 변환합니다.

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

let num2 = 255;
num2.toString(16); // "ff"

수학과 관련한 프로퍼티와 메소드를 가진 Math 함수를 살펴보면,

Math.PI 를 입력하면 원주율을 보여줍니다.
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.round(num1) // 5
Math.round(num2) // 6

소수점 자릿수까지 표현해야 할 경우는

let userRate = 30.1234;
Math.round(userRate * 100)/100 // 30.12
//3012.34 를 만들어서 반올림 한 후 다시 100으로 나누어 준다. 

위와 같은 경우는 toFixed() 를 쓰면 더 편리합니다.
숫자를 인수로 받아 그 숫자만큼 소숫점 이하 갯수를 반영합니다.

let userRate = 30.1234;
userRate.toFixed(2);
"30.12"

// 0 이거나 기존 소수부 갯수보다 큰 값을 넣으면
userRate.toFixed(0); // "30"
userRate.toFixed(6); // "30.123400"  -  남는 자리 0으로 채움

// 통계나 지표작업에 많은 쓰입니다.
// 문자열로 반환한다는 것을 주의합니다.
// 대게 문자열을 숫자로 변환하 작업합니다.

userRate.toFixed(2); // "30.12"
Number(userRate.toFixed(2)); // 30.12

isNaN()NaN 인지 아닌지 판단해줍니다. Not a Number 의 약자로 숫자가 아니면 true 를 반환합니다. 숫자면 false 를 반환합니다.

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

// 자기 자신과 똑같지 않다고 판단
x == NaN // false 
x === NaN // false
NaN == NaN // false

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

parseInt() 는 문자열을 숫자로 바꿉니다. Number() 와 다르게 문자와 혼용되어 있어도 동작합니다.

let margin = '10px';
parseInt(margin); // 10 - 읽을 수 있는 부분까지 읽고 반환
Number(margin); // NaN

let redColor = 'f3';
parseInt(redColor); // NaN 
// 이렇게 문자가 먼저 오면 NaN 을 반환

parseInt(redColor, 16); // 243
// 두번째 인수에 16을 전달해서 16진수로 바꿀 수 있다.

parseInt('11', 2) // 3
// 문자열 11을 숫자로 바꾸고 2진수를 10진수로 바꿀 수도 있다?

parseFloat() 은 부동소수점을 반환합니다.

let padding = '18.5%';

parseInt(padding); // 18 - 소수점 이하 무시 정수만 반환
parseFloat(padding); // 18.5

Math.random() 은 0-1 사이의 무작위 숫자를 생성합니다.

// 1과 100 사이의 숫자를 임의로 뽑고 싶다면 

Math.floor(Math.random() * 100)+1
// 랜덤 숫자가 0.003 일 수 있으니 최소값 1을 더한다.

Math.max() Math.min() 은 괄호 안의 인수들 중 최대값, 최소값을 고를 수 있습니다.

Math.max(1, 3, -2, 10);  //10
Math.min(1, 3,-1, 10); // -1

Math.abs() 는 절대값을 반환합니다.

Math.abs(-1) // 1

Math.pow(n, m) 은 n의 m승 값을. 거듭제급 값을 보여줍니다.

Math.pow(2, 10); // 1024

Math.sqrt() 는 제급근, 루트를 씌웁니다.

Math.sqrt(16) // 4

Math 함수들은 쇼핑몰이나 통계, 지표등의 업무를 할 때 필요합니다.

profile
Today I Learned

0개의 댓글