SORU
9 NİSAN 2013, Salı


KB, MB, bayt cinsinden boyutu dönüştürmek için yolu Javascript GB doğru

PHP kullanarak bayt gizli boyut için bu kodu buldum

PHP filesize MB/KB conversion

Şimdi Javascript kullanarak , bu kodu yani bak böyle JS dönüştürmek için denedim covert etmek istiyorum

function formatSizeUnits(bytes){
      if      (bytes>=1073741824) {bytes=(bytes/1073741824).toFixed(2) ' GB';}
      else if (bytes>=1048576)    {bytes=(bytes/1048576).toFixed(2) ' MB';}
      else if (bytes>=1024)       {bytes=(bytes/1024).toFixed(2) ' KB';}
      else if (bytes>1)           {bytes=bytes ' bytes';}
      else if (bytes==1)          {bytes=bytes ' byte';}
      else                        {bytes='0 byte';}
      return bytes;
}

Demo :http://jsbin.com/opufih/1/edit

Bunu yapmak için doğru bir yolu var mı ? Ya daha iyi ya da daha kolay bir ?

ve bu kodu herhangi bir yanlış kodlama var mı ? Teşekkürler


Güncelleme :(Standardizasyon sonra)

function formatSizeUnits(bytes){
        if      (bytes>=1000000000) {bytes=(bytes/1000000000).toFixed(2) ' GB';}
        else if (bytes>=1000000)    {bytes=(bytes/1000000).toFixed(2) ' MB';}
        else if (bytes>=1000)       {bytes=(bytes/1000).toFixed(2) ' KB';}
        else if (bytes>1)           {bytes=bytes ' bytes';}
        else if (bytes==1)          {bytes=bytes ' byte';}
        else                        {bytes='0 byte';}
        return bytes;
}

Demo :http://jsbin.com/opufih/9/edit

CEVAP
6 EYLÜL 2013, Cuma


Bu deneyin

function bytesToSize(bytes) {
   var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
   if (bytes == 0) return '0 Byte';
   var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
   return Math.round(bytes / Math.pow(1024, i), 2)   ' '   sizes[i];
};

Sabit :(@disfated dediği gibi)

1 kilo = 1000 (Ondalık) (veya ikili için 1024 değişim) Hassas parametre

function formatBytes(bytes,decimals) {
   if(bytes == 0) return '0 Byte';
   var k = 1000;
   var dm = decimals   1 || 3;
   var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
   var i = Math.floor(Math.log(bytes) / Math.log(k));
   return (bytes / Math.pow(k, i)).toPrecision(dm)   ' '   sizes[i];
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Exalto_Gamer

    Exalto_Gamer

    15 EKİM 2014
  • michellefeng's channel

    michellefeng

    26 Kasım 2006
  • Ralph Phillips

    Ralph Philli

    5 Aralık 2006