给定一个文件大小转换为对应的单位大小,保留两位小数
function transformUnit (size) {
if (size < 1024) {
return size + 'B'
} else if (size < 1024 * 1024) {
return (size / 1024).toFixed(2) + 'KB'
} else if (size < 1024 * 1024 * 1024) {
return (size / 1024 / 1024).toFixed(2) + 'MB'
} else if (size < 1024 * 1024 * 1024 * 1024) {
return (size / 1024 / 1024 / 1024).toFixed(2) + 'GB'
} else if (size < 1024 * 1024 * 1024 * 1024 * 1024) {
return (size / 1024 / 1024 / 1024 / 1024).toFixed(2) + 'TB'
}
}
也可以用循环的方式运算
function transformUnit (size) {
// 列举一般单位大小
const units = ['B', 'KB', 'MB', 'GB', 'TB']
// nowSize 会在每次循环中都除以1024,得到单位往更大的转换
let nowSize = size
// 给一个初始单位值,最小的B
let unit = units.shift()
while (units.length > 0 && nowSize > 1024) {
// 单位转换
unit = units.shift()
nowSize /= 1024
}
return nowSize.toFixed(2) + unit
}