如何在javascript中将千字节转换为兆字节

时间:2016-02-25 09:40:47

标签: javascript

如何在javascript中将4000千字节转换为4兆字节?

我试过了

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;
}


formatSizeUnits(4000);

我得到的答案是" 3.91 KB"。我需要4mb

1 个答案:

答案 0 :(得分:7)

你的功能是正确的。它只接受字节。但你要做的是formatSizeUnits(4000)。这是错误的,预期输出为3.91 MB,因为它除以1024而不是1000.正确的方法是调用

 formatSizeUnits(4000*1024)  // beacuse 4000 is in KB and convert into bytes

请参阅以下代码段以获取正确答案

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;
}


document.write(formatSizeUnits(4000*1024));