Front/Utils

[ Utils ] Unit Conversion

Yume Dev 2025. 7. 29. 00:34
반응형

byte를 용량에 따라서 자동으로 단위 설정을 하여 보여주는 함수이다.

 

최소 단위는 MB로 설정되며 만약 용량이 엄청 작다면 0 MB로 결과가 나오게 된다.

function formatBytes(bytes: number, decimals: number = 2) {
    const dm = decimals < 0 ? 0 : decimals

    if(bytes === 0) {
        return `0.${'0'.repeat(dm)} MB`
    }

    const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];

    let i = Math.floor(Math.log(bytes) / Math.log(1024))

    if(i < 2) {
        i = 2;
    }

    const value = (bytes / Math.pow(1024,i)).toFixed(dm)

    return value + ' ' + sizes[i]
}
728x90
반응형