How to format bytes to kilobytes, megabytes, gigabytes and terabytes in Node.js

2 Answers

0 votes
function FormatBytes(bytes) {
    const sizes = [ "B", "KB", "MB", "GB", "TB" ];
    
    let i = 0;
    let dblByte = bytes;
    
    for (; i < sizes.length && bytes >= 1024; i++, bytes /= 1024) {
        dblByte = bytes / 1024.0;
    }
             
    return dblByte.toFixed(2) + " " + sizes[i];
}
 
console.log(FormatBytes(9723453784599));
console.log(FormatBytes(8124362542));
console.log(FormatBytes(23746178));
console.log(FormatBytes(1048576));
console.log(FormatBytes(1024000));
console.log(FormatBytes(873445));
console.log(FormatBytes(1024));
console.log(FormatBytes(978));
console.log(FormatBytes(13));
console.log(FormatBytes(0));



 
/*
run:
 
8.84 TB
7.57 GB
22.65 MB
1.00 MB
1000.00 KB
852.97 KB
1.00 KB
978.00 B
13.00 B
0.00 B
 
*/

 



answered May 15, 2024 by avibootz
0 votes
function FormatBytes(bytes, decimals = 2) {
    if (!+bytes) return '0 Bytes'

    const kb = 1024
    decimals = decimals < 0 ? 0 : decimals
    const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']

    const index  = Math.floor(Math.log(bytes) / Math.log(kb))

    return `${parseFloat((bytes / Math.pow(kb, index)).toFixed(decimals))} ${sizes[index]}`
}

console.log(FormatBytes(8913213499984251734634652));
console.log(FormatBytes(7873263499984734634652));
console.log(FormatBytes(58732639984734634652));
console.log(FormatBytes(6199984734634652));
console.log(FormatBytes(99984734634652));
console.log(FormatBytes(9823453784599));
console.log(FormatBytes(7124362542));
console.log(FormatBytes(23746178));
console.log(FormatBytes(1048576));
console.log(FormatBytes(1024000));
console.log(FormatBytes(873445));
console.log(FormatBytes(1024));
console.log(FormatBytes(978));
console.log(FormatBytes(13));
console.log(FormatBytes(0));



 
/*
run:
 
7.37 YB
6.67 ZB
50.94 EB
5.51 PB
90.94 TB
8.93 TB
6.64 GB
22.65 MB
1 MB
1000 KB
852.97 KB
1 KB
978 Bytes
13 Bytes
0 Bytes

 
*/

 



answered May 15, 2024 by avibootz
...