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

Posted

技术标签:

【中文标题】使用 JavaScript 数学将字节转换为千兆字节【英文标题】:convert Bytes into Gigabytes with javascript math 【发布时间】:2015-11-20 23:20:43 【问题描述】:

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

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

【问题讨论】:

你给的值只有597.55MB。您希望它显示为 gb 值吗? @jeff : 他给出的值是626.58 MB,或者597.55 MiB。 :) @Yuriko,操作系统(至少是 Windows)使用 1024 字节的值,而不是似乎已经进入行业的人造 1000。 @jeff,“千”一直是“一千”。公里 = 1000 米。公斤 = 1000 克。所以“人造”1000根本不是人造的。当涉及到字节时,认为“kilo-”将其含义更改为 1024 只是无知或愚蠢。 【参考方案1】:

1 KB = 1024 字节、1 MB = 1024 KB、1 GB = 1024 MB,分别为file_size_gb = 626581571 / 1024 / 1024 / 1024

或者在下面的评论中说,file_size_gb = 626581571 / Math.pow(1024, 3)

【讨论】:

var file_size_gb = 626581571 / Math.pow(1024, 3) 实际上,取决于系统和制造商,它可能是 1000 而不是 1024(但两者都可能) 他要求的是 千兆字节 (GB),而不是 千兆字节 (GiB)。【参考方案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

因此,您只需除以 109

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


1 KiB = 1024 字节

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

再一次,这是基本的数学:

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

626 581 571 B = 0.583 GiB

这次需要除以230

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

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

【讨论】:

以上是关于使用 JavaScript 数学将字节转换为千兆字节的主要内容,如果未能解决你的问题,请参考以下文章

如何仅使用 javascript 将图像转换为字节数组以将图像存储在 sql server 上?

PIL:将字节数组转换为图像

在python中将字节转换为位

Javascript将图片字节转换为十六进制

PHP如何将从二进制文件中读取的字节转换为数字

JavaScript - 以干净的方式将字节转换为float