将文件大小转换为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数的数字

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