728x90
Math.log()
자연로그의 값을 반환한다. 0이면, -Infinity, 음수면, NaN 반환
Math.log는 입력받은 파라미터가 2.718..(자연상수)의 몇 거듭제곱인지 반환해준다.
자연로그
자연로그: ln(x)에서 x에 해당하는 수. 무리수 e를 밑으로 하는 로그 logex를 자연로그라고 lnx로 나타낸다.
자연상수
자연상수: 2.7182... 끝이 없는 무리수.(e), 자연로그 lnx의 밑이다. '오일러의 수'라고 한다. x의 값이 0에 한없이 가까워질 때, 일정한 값에 가까워지며 그 극한값을 e로 나타낸다.
로그를 계산하는 방법
log3^9 = 2
log3^27 = 3
log2^1024 = 10
.
.
.
lnx = loge^x
Math.log(980) = ln980 = log2.718...^980 = 6.887552571664617
Math.log(980)을 하면, 반환되는 값은 6.887552571664617이다.
980bytes를 포멧화(Byte, KB, MB, GB,...)하면,
ln980 = 6.88...
ln1024 = log2.718^1024 = 6.932
6.88 / 6.932 = 1..... -> 980Bytes
Math.log(1)
Math.log(2.5): 0.916...
Math.log(64)
Math.log(4)
Math.log(64)/ Math.log(4)
포멧 코드
/**
* @description
* 자료 업로드 파일 사이즈 변환
* 파일 용량은 숫자가 3자리 넘어가면 단위변환, 반올림
ex) 100B (O)
1,000B (X) -> 980B (O)
123.45KB (X) -> 123KB (O)
100KB (O)
1,024KB (X) -> 1MB (O)
* @param {*} number
*/
export default function fileSizeFormat(bytes, decimals = 0) {
if (bytes === 0) return "0B";
const k = 1024;
const dm = decimals < 0 ? 0 : decimals;
const sizes = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
const i = Math.floor(Math.log(bytes) / Math.log(k));
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + sizes[i];
}
728x90
'자바스크립트' 카테고리의 다른 글
[Javascript]Context란? (0) | 2022.09.28 |
---|---|
[Javascript] mutable과 immutable 데이터 관리하기 (0) | 2022.09.26 |
[Javascript] 모르는 부분 (0) | 2022.09.20 |
[jest] svg를 import한 vue 컴포넌트 테스트 실행 오류 해결방법 (0) | 2022.09.19 |
API 응답 AXIOS 에러를 컴포넌트로 전달하기 (0) | 2022.08.29 |
댓글