简易方法:
function bytesToSize(bytes) {
if (bytes === 0) return '0 B';
var k = 1024,
sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
i = Math.floor(Math.log(bytes) / Math.log(k));
return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i];
}
层层计算:
function bytes(val) {
if (val / 1024 / 1024 / 1024 / 1024 >= 1) {
return (val / 1024 / 1024 / 1024 / 1024).toFixed(2) + ' TB'
} else if (val / 1024 / 1024 / 1024 >= 1) {
return (val / 1024 / 1024 / 1024).toFixed(2) + ' GB'
} else if (val / 1024 / 1024 >= 1) {
return (val / 1024 / 1024).toFixed(2) + ' MB'
} else if (val / 1024 >= 1) {
return (val / 1024).toFixed(2) + ' KB'
}
return val + 'B'
}