我的网络应用程序允许用户上传文件。我能够以字节为单位找到这些文件的大小。但是我需要在后端使用javascript将此数字转换为千兆字节。有谁知道公式以及如何使用javascript执行此任务?
例如:现在我的文件大小为626581571字节。
答案 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 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));
}
也许你的意思是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];
}