国产视频app 以前寫過一篇關于在php中將一個文件的大小(以字節為單位),轉化成以合適的單位(B,KB,MB,GB)來表示的教程教程,由于博主個人習慣把一些不重要的邏輯放到用戶的瀏覽器中去執行,也就是用JS來處理。所以就寫了一個利用 js 來將文件大小轉化為B KB MB GB為單位的轉化方法。

例1:js 字節轉換成 B KB MB GB 的方法

js函數代碼:

<script>
function sizeTostr(size) {
    var data = "";
    if (size < 0.1 * 1024) { //如果小于0.1KB轉化成B  
        data = size.toFixed(2) + "B";
    } else if (size < 0.1 * 1024 * 1024) {//如果小于0.1MB轉化成KB  
        data = (size / 1024).toFixed(2) + "KB";
    } else if (size < 0.1 * 1024 * 1024 * 1024) { //如果小于0.1GB轉化成MB  
        data = (size / (1024 * 1024)).toFixed(2) + "MB";
    } else { //其他轉化成GB  
        data = (size / (1024 * 1024 * 1024)).toFixed(2) + "GB";
    }
    var sizestr = data + "";
    var len = sizestr.indexOf("\.");
    var dec = sizestr.substr(len + 1, 2);
    if (dec == "00") {//當小數點后為00時 去掉小數部分  
        return sizestr.substring(0, len) + sizestr.substr(len + 3, 2);
    }
    return sizestr;
}  
</script>

函數調用方法:

<script>
console.log(sizeTostr(1000));
console.log(sizeTostr(102400));
console.log(sizeTostr(10240000));
console.log(sizeTostr(1000111111));
</script>

輸出結果:

0.98KB
100KB
9.77MB
0.93GB

例2:js實現KB、MB、GB、TB單位轉換

看了上面中例1的代碼,是不是感覺很簡單,只是一些數據的比較,那么接下來看一下例2的代碼。

js函數代碼:

<script>
// c 參數:表示要被轉化的容量大小,以字節為單
// b 參數:表示如果轉換時出小數,四舍五入保留多少位 默認為2位小數
function formatBytes(a, b) { 
    if (0 == a) return "0 B"; 
    var c = 1024, d = b || 2, e = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], f = Math.floor(Math.log(a) / Math.log(c)); 
    return parseFloat((a / Math.pow(c, f)).toFixed(d)) + " " + e[f];
}
</script>

函數的調用:

<script>
console.log(formatBytes(1234));
console.log(formatBytes(1234, 3)); 
console.log(formatBytes(123400, 3)); 
console.log(formatBytes(12340000, 3)); 
console.log(formatBytes(12340000000, 3)); 
console.log(formatBytes(12340000000000, 3)); 
console.log(formatBytes(1234000000000000, 3)); 
</script>

輸出值:

1.21 KB
1.205 KB
120.508 KB
11.768 MB
11.493 GB
11.223 TB
1.096 PB