我现在需要的是根据文件大小转换成带有"Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"单位的格式。
如文件大小数值为3858,需转换成3.78KB。
网上找到一个版本的是采用PHP,代码如下:
<? php
function setupSize( $fileSize ) {
$size = sprintf ( " %u " , $fileSize );
$sizename = array ( " Bytes " , " KB " , " MB " , " GB " , " TB " , " PB " , " EB " , " ZB " , " YB " );
return round ( $size / pow ( 1024 , ( $i = floor ( log ( $size , 1024 )))) , 3 ) . $sizename [ $i ];
}
echo setupSize( ' 200000 ' )
?>
参照上面的代码,在js脚本里写:
var unitArr = new Array("Bytes","KB","MB","GB","TB","PB","EB","ZB","YB");
var index;
var srcsize = parseFloat(value);
var size =Math.round(srcsize/Math.pow(1024,(index=Math.floor(这里求log对数如何转换))),3);查看API,Math有一个方法是log(x)。不过这个是固定底数为e的。
请问在js中有没有可以自定义底数的对数函数?或者大家对这个问题是不是还有其他解答方法?
如文件大小数值为3858,需转换成3.78KB。
网上找到一个版本的是采用PHP,代码如下:
<? php
function setupSize( $fileSize ) {
$size = sprintf ( " %u " , $fileSize );
$sizename = array ( " Bytes " , " KB " , " MB " , " GB " , " TB " , " PB " , " EB " , " ZB " , " YB " );
return round ( $size / pow ( 1024 , ( $i = floor ( log ( $size , 1024 )))) , 3 ) . $sizename [ $i ];
}
echo setupSize( ' 200000 ' )
?>
参照上面的代码,在js脚本里写:
var unitArr = new Array("Bytes","KB","MB","GB","TB","PB","EB","ZB","YB");
var index;
var srcsize = parseFloat(value);
var size =Math.round(srcsize/Math.pow(1024,(index=Math.floor(这里求log对数如何转换))),3);查看API,Math有一个方法是log(x)。不过这个是固定底数为e的。
请问在js中有没有可以自定义底数的对数函数?或者大家对这个问题是不是还有其他解答方法?
解决方案 »
- 点击第一次正常第二次确还原了(不正常)第三次正常 什么情况啊(帮帮忙啊大神们)
- 两个下拉框互相关联联动和同步
- 怎样调用预先存储在字典中的方法?
- 如何用JAVASCRIPT 控制DIV滚动条的显示与隐藏
- 关于JAVASCRIPT能实现上一篇,下一篇的功能?
- 基础问题
- 数组处理,请高手指点
- 使用J s来实现 web 版的 类似于 安卓桌面的 左右滑动特效,在线等
- 如何得到光标在INPUT(text)中的位置?我想确定光标是否在输入框中的字符串的开始或结尾。
- Window.open(url,name,attributes)的讨论
- JS代码兼容问题。!望各位帮忙看看。
- 【寻找中国的JS超人】变幻莫测的Javascript运行流程[1]
function lg(x,n){
return log(x)/log(n)
}