存储字节kb,mb,gb,tb转换代码

本文介绍了一个基于JavaScript实现的字节单位转换器。该转换器能够实现不同字节单位之间的相互转换,例如从TB到GB、MB、KB、Byte、Bit等,并提供了四舍五入的功能。代码中定义了一系列函数来处理不同单位之间的转换。
$(function(){
    $(".c_block .txt").keyup(function(){
        var current_unit=$(this).attr('name'),num=parseFloat($(this).val()),key_obj=this;
        if(isNaN(num)){return;}
        var d=parseInt($('#decimals').val());if(isNaN(d)){d=6;}
        $(".c_block .txt").each(function(){
            if(key_obj==this){return;}
            $(this).val(byte_calc.Round(byte_calc.conver(num,current_unit,$(this).attr('name')),d));
        });
    });
});

var byte_calc={
    serial:'tb_gb_mb_kb_byte_bit',
    tb_one:1024,
    gb_one:1024,
    mb_one:1024,
    kb_one:1024,
    byte_one:8,
    byte_bit:function(num){ 
        return num * byte_calc.byte_one;
    },
    kb_byte:function(num){
        return num * byte_calc.kb_one;
    },
    mb_kb:function(num){
        return num * byte_calc.mb_one;
    },
    gb_mb:function(num){
        return num * byte_calc.gb_one;
    },
    tb_gb:function(num){
        return num * byte_calc.tb_one;
    },
    big_small:function(num,b,s){
        var linkstr=byte_calc.serial.split('_'),name='';
        for(i in linkstr){
            if(name!=''&&linkstr[i]==s){
                eval('num=byte_calc.'+name+'_'+linkstr[i]+'('+num+')');
                return num;
            }else if(name!=''){
                eval('num=byte_calc.'+name+'_'+linkstr[i]+'('+num+')');
                name=linkstr[i];
            }
            if(linkstr[i]==b){name=linkstr[i];}
        }
        return false;
    },
    small_big:function(num,s,b){
        var n=byte_calc.big_small(1,b,s);
        return num/n;
    },
    conver:function(num,s,d){
        var bc_s=byte_calc.serial;
        if(bc_s.indexOf(s)<0||bc_s.indexOf(d)<0){alert('不能转换的存储单位')}
        if(s==d){return num;}
        if(bc_s.indexOf(s)<bc_s.indexOf(d)){
            return byte_calc.big_small(num,s,d);
        }else{
            return byte_calc.small_big(num,s,d)
        }
    },
    Round:function(i,digit)
    {
        if(digit==0)
            p=1;
        else
        {
            if(digit)
                p=Math.pow(10,digit);
            else
                p=100;
        }
        return Math.round(i*p)/p;
    }
}

  演示地址:http://www.bangnishouji.com/tools/Byte_calculate.html

转载于:https://www.cnblogs.com/bangnishouji/p/3454200.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值