zoukankan      html  css  js  c++  java
  • JS格式化文件大小 单位:Bytes、KB、MB、GB

    输入一个表示文件大小的数字,自适应转换到KB,MB,GB

      方法一:bytes自适应转换到KB,MB,GB

    /// <summary>
    /// 格式化文件大小的JS方法
    /// </summary>
    /// <param name="filesize">文件的大小,传入的是一个bytes为单位的参数</param>
    /// <returns>格式化后的值</returns>
    function renderSize(filesize){
        if(null==value||value==''){
            return "0 Bytes";
        }
        var unitArr = new Array("Bytes","KB","MB","GB","TB","PB","EB","ZB","YB");
        var index=0;
        var srcsize = parseFloat(value);
        index=Math.floor(Math.log(srcsize)/Math.log(1024));
        var size =srcsize/Math.pow(1024,index);
        size=size.toFixed(2);//保留的小数位数
        return size+unitArr[index];
    }

      方法二:bytes自适应转换到KB,MB,GB

    function formatFileSize(fileSize) {
        if (fileSize < 1024) {
            return fileSize + 'B';
        } else if (fileSize < (1024*1024)) {
            var temp = fileSize / 1024;
            temp = temp.toFixed(2);
            return temp + 'KB';
        } else if (fileSize < (1024*1024*1024)) {
            var temp = fileSize / (1024*1024);
            temp = temp.toFixed(2);
            return temp + 'MB';
        } else {
            var temp = fileSize / (1024*1024*1024);
            temp = temp.toFixed(2);
            return temp + 'GB';
        }
    }

      方法三:可以设定输入的文件长度的参数的原始单位,自适应转换到KB,MB,GB

    /**
     * [fileLengthFormat 格式化文件大小]
     * @param  {[int]} total [文件大小]
     * @param  {[int]} n     [total参数的原始单位如果为Byte,则n设为1,如果为kb,则n设为2,如果为mb,则n设为3,以此类推]
     * @return {[string]}       [带单位的文件大小的字符串]
     */
    function fileLengthFormat(total, n) {
        var format;
        var len = total / (1024.0);
        if (len > 1000) {
            return arguments.callee(len, ++n);
        } else {
            switch (n) {
                case 1:
                    format = len.toFixed(2) + "KB";
                    break;
                case 2:
                    format = len.toFixed(2) + "MB";
                    break;
                case 3:
                    format = len.toFixed(2) + "GB";
                    break;
                case 4:
                    format = len.toFixed(2) + "TB";
                    break;
            }
            return format;
        }
    }
    //假如文件大小为1024byte,想自适应到kb,则如下传参
    fileLengthFormat(1024,1);//"1.00KB"
    //假如文件大小为1024kb,想自适应到mb,则如下传参
    fileLengthFormat(1024,2);//"1.00MB"
    //测试
    fileLengthFormat(112233445566,1);//"104.53GB"
  • 相关阅读:
    Quicksum -SilverN
    uva 140 bandwidth (好题) ——yhx
    uva 129 krypton factors ——yhx
    uva 524 prime ring problem——yhx
    uva 10976 fractions again(水题)——yhx
    uva 11059 maximum product(水题)——yhx
    uva 725 division(水题)——yhx
    uva 11853 paintball(好题)——yhx
    uva 1599 ideal path(好题)——yhx
    uva 1572 self-assembly ——yhx
  • 原文地址:https://www.cnblogs.com/cherylgi/p/15464726.html
Copyright © 2011-2022 走看看