今天遇到一个需求,需要把数据单位进行换算,记录一下。写的不好请勿见怪。

function bytesToSize( bytes ) {//单位转化
         var k = 1024,
             sizes = ['b','KB','MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
         if(bytes === 0){
             return {

       txt: 0,
                 unit: sizes[0],
                 charge: 1
             };
         }else{
            var i = Math.floor(Math.log(bytes) / Math.log(k));
            return {

       txt: ( bytes / Math.pow(k, i)).toPrecision(3),//转化后的具体数值,整体保持三位数 (注:toPrecision()如果小数点第一位为0 它会返回1.03e之类的 你可以使用toFixed())
                 unit: sizes[i], //转化后的单位
                 charge: Math.pow(k, i) //你除了多少个1024
             }
         }
}