将字节数目转为人类友好的格式
Le Sun 23 February 2025
姑娘偷来了一段代码。
function bytesToSize(bytes, decimals = 2) {
if (!Number(bytes)) {
return '0 Bytes';
}
const kbToBytes = 1024;
const dm = decimals < 0 ? 0 : decimals;
const sizes = [
'Bytes',
'KiB',
'MiB',
'GiB',
'TiB',
'PiB',
'EiB',
'ZiB',
'YiB',
];
const index = Math.floor(
Math.log(bytes) / Math.log(kbToBytes),
);
return `${parseFloat(
(bytes / Math.pow(kbToBytes, index)).toFixed(dm),
)} ${sizes[index]}`;
}
console.log(bytesToSize(1234)); // 1.21 KiB
console.log(bytesToSize(1234567)); // 1.18 MiB
console.log(bytesToSize(1234567890)); // 1.15 GiB
console.log(bytesToSize(1234567891231)); // 1.12 TiB
console.log(bytesToSize(12345678912312345)); // 10.97 PiB
这段代码是姑娘从这里偷的: