將文件大小轉換爲KB,MB等

function bytesToSize(bytes) {
if (bytes === 0) 
return '0 B';
var k = 1000, // or 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];//此處有效數字三位,如果是1000-1024kb之間則顯示科學計數法,所以建議保留兩位小數.toFixed(2)

}

說明:

 使用Math.log時基於不同的底數 

下面的函數返回以 x 爲底 y 的對數(即logx y):// X的多少次方等於y

function getBaseLog(x, y) {
    return Math.log(y) / Math.log(x);
}
pow() 方法可返回 x 的 y 次冪的值。

toPrecision() 方法可在對象的值超出指定位數時將其轉換爲指數計數法。

使用不同進制把數字格式化爲指定的長度:    返回指定精度的數字格式

var num = new Number(13.3714);
var a = num.toPrecision();
var b = num.toPrecision(2);
var c = num.toPrecision(3);
var d = num.toPrecision(10);

13.3714
13
13.4
13.37140000

不同於toFixed(n) 方法,後者是可把 Number 四捨五入爲指定小數位n數的數字

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章