使用javascript数学将字节转换为千兆字节

时间:2015-11-20 23:20:44

标签: javascript byte filesize

我的网络应用程序允许用户上传文件。我能够以字节为单位找到这些文件的大小。但是我需要在后端使用javascript将此数字转换为千兆字节。有谁知道公式以及如何使用javascript执行此任务?

例如:现在我的文件大小为626581571字节。

3 个答案:

答案 0 :(得分:3)

1千字节= 1024字节,1兆字节= 1024千字节,1千兆字节= 1024兆字节,分别为file_size_gb = 626581571 / 1024 / 1024 / 1024

或者如下面的评论所述,file_size_gb = 626581571 / Math.pow(1024, 3)

答案 1 :(得分:2)

1 KB = 1000字节

这是基本的数学:

1 GB = 1 000 MB = 1 000 000 KB = 1 000 000 000 B

626 581 571 B = 0.626 GB

因此,您只需要除以10 9

function byteToGigaByte(n) {
    return  (n / Math.pow(10,9));
}

1 K i B = 1024字节

也许你的意思是gibibyte而不是gigabyte?

再次,这是基本的数学:

1 GiB = 1024 MiB = 1024 * 1024 KiB = 1024 * 1024 * 1024 B
      = 1073741824 B

626 581 571 B = 0.583 GiB

这一次,你需要除以2 30

function byteToGibiByte(n) {
    return  (n / Math.pow(2,30));
}

请注意gigabyte和gibibyte之间的细微差别:1 GB = 0.931 GiB

答案 2 :(得分:-1)

我使用的是什么(我在另一个网站上发现了这个但不记得在哪里)这将涵盖所有实际值

function fileSize (size) {
    var i = Math.floor(Math.log(size) / Math.log(1024));
    return (size / Math.pow(1024, i)).toFixed(2) * 1 + ' ' + ['B', 'kB', 'MB', 'GB', 'TB'][i];
}