为了账号安全,请及时绑定邮箱和手机立即绑定

在线等!格式化文件大小函数不明白?求老司机指点!

在线等!格式化文件大小函数不明白?求老司机指点!

BIG阳 2019-08-17 09:59:52
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 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

index是判断srcsize是1024的几次方的。
log1024(srcsize)=ln(srcsize)/ln(1024)=Math.log(srcsize)/Math.log(1024)
因为js里面没有直接log1024(srcsize)这种函数,所以要转化成Math.log来算
                            
查看完整回答
反对 回复 2019-08-17
?
皈依舞

TA贡献1851条经验 获得超3个赞

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次方。
                            
查看完整回答
反对 回复 2019-08-17
  • 2 回答
  • 0 关注
  • 357 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信