Top5 선정은 철저히 본인 기준(=어디서 많이 본 기준)이다.
사실 쓰려고 할 때마다 헷갈려서 찾아보게 되길래 정리 좀 해야겠다 싶었다.
Math
는 정적인 수학적 속성/메소드를 가진 내장 객체이며 Number 자료형만 지원한다.
아래 메소드는Math
의 정적 메소드이므로, 변형없이 아래 형태 그대로 사용해야 한다.
console.log(Math.round(0.9));
// expected output: 1
console.log(Math.round(5.95), Math.round(5.5), Math.round(5.05));
// expected output: 6 6 5
console.log(Math.round(-5.05), Math.round(-5.5), Math.round(-5.95));
// expected output: -5 -5 -6
Math.ceil(.95); // 1
Math.ceil(4); // 4
Math.ceil(7.004); // 8
Math.ceil(-0.95); // -0
Math.ceil(-4); // -4
Math.ceil(-7.004); // -7
console.log(Math.floor(5.95)); //5
console.log(Math.floor(5.05)); //5
console.log(Math.floor(5)); //5
console.log(Math.floor(-5.05));
// expected output: -6
Math.floor(null)
// NaN 대신 0을 반환
0 이상 1 미만의 부동소숫점 의사 난수.
랜덤으로 무언갈 도출할 때, 예를 들어 가위바위보/주사위 같은 랜덤 게임을 만들거나 랜덤으로 사진을 띄우는 등의 구현이 필요할 때 필요한 메소드
function getRandom() {
return Math.random();
}
function getRandomNum(min, max) {
console.log( Math.random() * (max - min) + min);
}
getRandomNum(1, 21); // 17.552907116645944
ㅎ.. 수학계산 이해하는 것도 일이네 ㅎ
12.3456789.toFixed() // '12'
12.3456789.toFixed(1) // '12.3'
12.3456789.toFixed(2) // '12.35' (5이상은 올림한다)
12.3456789.toFixed(9) // '12.345678900' (모자라면 0으로 채운다)
-12.345.toFixed(1) // -12.3 (연산자 적용이 우선이라 음수는 문자열로 반환 X)
(-12.345).toFixed(1) // '-12.3' (음수에 괄호를 사용하면 문자열로 반환한다)
간편하고 직관적으로 사용할 수 있지만, 소수점 자리값의 한계나 문자열로 반환되어 연산 시 오류가 왕왕 발생하기도 한다.
const num = 12.34567;
Math.round(num * 10) / 10 // 12.3
Math.round(num * 100) / 100; // 12.35
Math.round(num * 10000) / 10000; // 12.3457
소수에 10, 100, 100 ...번째 자릿수만큼 곱한 다음 다시 그 수로 나누어주면 toFixed()
와 같은 역할을 한다.
JavaScript의 수학 라이브러리를 용도에 따라 사용할 수 있다.
ex) Big.js
, BigNumber.js
, Decimal.js
, mathjs
...