【JavaScript】jsでバイト(Byte)の単位を変換する関数

Javascriptでバイト(Byte)の単位を変換する関数を使ったので、メモしておきます。

ソースコード

// 四捨五入を行う関数
function round(number, precision) {
  var shift = function (number, precision, reverseShift) {
    if (reverseShift) {
      precision = -precision;
    }
    var numArray = ("" + number).split("e");
    return +(numArray[0] + "e" + (numArray[1] ? (+numArray[1] + precision) : precision));
  };
  return shift(Math.round(shift(number, precision, false)), precision, true);
}

// byte変換を行う関数
function convertByteSize(size) {
  var sizes =[' B', ' KB', ' MB', ' GB', ' TB', ' PB', ' EB'];
  var ext = sizes[0];
  if(typeof size==='number'){
    for (var i=1;i< sizes.length;i+=1){
      if(size>= 1024){
        size = size / 1024;
        ext = sizes[i];
      }
    }
  }
  return round(size, 2)+ext;
}

使い方

使用方法は、convertByteSizeの引数にバイト数を数字で与えるだけです。
単位を含めた文字列が返ってきます。

サンプルコード

convertByteSize(87178);

結果

85.13 KB