[JavaScript] Math Methods

Narcoker·2022년 8월 24일
0

JavaScript

목록 보기
15/55

Math.PI

PI 값을 반환한다.

Math.PI; // 3.14149265...

Math.ceil()

소수를 정수형으로 올림

Math.ceil(5.6); // 6
Math.ceil(2.5); // 3

Math.floor()

소수를 정수형으로 내림

Math.floor(5.1); // 5
Math.floor(4.3); // 4

Math.trunc()

소수점을 버림

Math.trunc(4.1); // 4
Math.trunc(-3.2); // -3

Math.round()

소수를 정수형으로 반올림

Math.round(5.1); // 5
Math.round(5.6); // 6

소수점 자릿수 반올림

요구사항 : 소수점 둘째자리까지 반올림해서 출력하시오
반올림하고자 하는 영역까지 정수형으로 만들어서 반올림하고 다시 그 값만큼 나눈다.

let userRate = 30.1234;
Math.round(userRate * 100) / 100 // 30.12

toFixed()

해당 자리수 까지 표현하고 나머지 소수점은 반올림한다.
주의점 : 반환값이 문자열이다.
따라서 숫자형으로 다시 사용하고 싶은경우 Number()를 사용한다.

let userRate = 30.1234;
userRate.toFixed(2); // "30.12"
userRate.toFixed(0); // "30"
// 소수 자리수보다 큰 수가 매개변수인 경우 0으로 채워진다.
userRate.toFixed(6); // "30.123400"
Number(userRate.toFixed(2)); // 30.12;

isNaN()

해당 값이 NaN인지 판단하는 메소드
NaN은 비교연산자로 판단할 수 없다.

let x = Number('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

위 redColor 변수는 16진수라 NaN을 반환하는데 두번째 파라미터에 변환 진수를 넣어주면 그에 맞게끔 변환한다.

let redColor = 'f3'
parseInt(redColor, 16); // 243
parseInt('11', 2); // 3

parseFloat()

parseInt()와 다르게 부동소수점을 반환한다.

let padding = '18.5%';
parseInt(padding); // 18
parseFloat(padding); // 18.5;

Math.random()

0~1 사이 무작위 숫자를 생성한다.

1~100의 임의의 숫자

Math.floor(Math.random() * 100) + 1; 
// x = Math.random() * 100        -> 0.000001 ~ 99.99999
// Math.floor(x) + 1              -> (0 + 1) ~ (99 + 1) 

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()

절대값을 반환한다.

Math.abs(-1); // 1

Math.pow(n,m)

n의 m 승 값을 반환한다.

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

Math.sqrt()

매개변수의 제곱근 값을 반환한다.

Math.sqrt(16); // 4
Math.sqrt(15.3); // 3.9115214431215892
profile
열정, 끈기, 집념의 Frontend Developer

0개의 댓글