functionrenderSize(value){if(null==value||value==''){return"0Bytes";}varunitArr=newArray("Bytes","KB","MB","GB","TB","PB","EB","ZB","YB");varindex=0,srcsize=parseFloat(value);index=Math.floor(Math.log(srcsize)/Math.log(1024));varsize=srcsize/Math.pow(1024,index);//保留的小数位数size=size.toFixed(2);returnsize+unitArr[index];}想知道为什么这里边index=Math.floor(Math.log(srcsize)/Math.log(1024));index可以决定是什么单位?还有varsize=srcsize/Math.pow(1024,index);这句
2 回答
拉莫斯之舞
TA贡献1820条经验 获得超10个赞
index是判断srcsize是1024的几次方的。log1024(srcsize)=ln(srcsize)/ln(1024)=Math.log(srcsize)/Math.log(1024)因为js里面没有直接log1024(srcsize)这种函数,所以要转化成Math.log来算
慕斯709654
TA贡献1840条经验 获得超5个赞
Math.floor(Math.log(srcsize)/Math.log(1024))计算srcsize是1024的多少次方,当然可以决定其单位,我们的kb,mb不是以1024的次方数算的吗?byte是1024的0次方,kb是1024的一次放,mb是2次方,gb是3次方varsize=srcsize/Math.pow(1024,index);这个是除以1024的n次方,因为单位本身就是1024的n次方。
添加回答
举报
0/150
提交
取消