亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在JavaScript中將字節大小轉換為KB,MB,GB的正確方法

在JavaScript中將字節大小轉換為KB,MB,GB的正確方法

海綿寶寶撒 2019-10-05 11:02:15
我通過PHP 將此代碼轉換為秘密大?。ㄒ宰止潪閱挝唬,F在,我想使用JavaScript 將這些尺寸轉換為人類可讀的尺寸。我試圖將此代碼轉換為JavaScript,如下所示: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 bytes"; }  return bytes;}這是正確的方法嗎?有更容易的方法嗎?
查看完整描述

3 回答

?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

const units = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];


function niceBytes(x){

  let l = 0, n = parseInt(x, 10) || 0;


  while(n >= 1024 && ++l){

      n = n/1024;

  }

  //include a decimal point and a tenths-place digit if presenting 

  //less than ten of KB or greater units

  return(n.toFixed(n < 10 && l > 0 ? 1 : 0) + ' ' + units[l]);

}

結果:


niceBytes(1)                   // 1 byte

niceBytes(435)                 // 435 bytes

niceBytes(3398)                // 3.3 KB

niceBytes(490398)              // 479 KB

niceBytes(6544528)             // 6.2 MB

niceBytes(23483023)            // 22 MB

niceBytes(3984578493)          // 3.7 GB

niceBytes(30498505889)         // 28 GB

niceBytes(9485039485039445)    // 8.4 PB


查看完整回答
反對 回復 2019-10-05
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

toFixed(n)toPrecision(n)對于所有值都具有一致的精度可能更合適。為了避免尾隨零(例如:),bytesToSize(1000) // return "1.00 KB"我們可以使用parseFloat(x)。我建議將最后一行替換為:return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];。與之前的更改相比,結果是: bytesToSize(1000) // return "1 KB"bytesToSize(1100) // return "1.1 KB"bytesToSize(1110) // return "1.11 KBbytesToSize(1111) // also return "1.11 KB"

查看完整回答
反對 回復 2019-10-05
  • 3 回答
  • 0 關注
  • 2307 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號