我需要将兆字节转换为适当的单位。
parseInt(10000) * 1024 * 1024 //10485760000 byte
filesize(parseInt(10000) * 1024 * 1024); // "9.77 GB"
9.77 GB似乎有误。当我使用谷歌转换器在线转换它时,我得到:
10485760000字节= 10,48576千兆字节
为什么这个包的行为是这样的?
答案 0 :(得分:3)
术语千兆字节通常用于表示1000 ^ 3字节或1024 ^ 3字节。
来源:Wikipedia
filesize
包默认使用1024 ^ 3。您可以通过指定base
选项(默认为2
)来更改它:
filesize(10000 * 1024 * 1024, { base: 10 }) // 10.49 GB
答案 1 :(得分:2)
SI单位(大多数)基于小数部分,他们的前缀也是如此:
当开发数字基础2计算机时,他们发明了新的前缀。很快就达成了关于价值观的协议,但找到吸引人的名字并不容易。不幸的是,这些名字最终会传播到SI所在的地方,所以我们最终得到了一个很好的混淆:
然后,有人发明了一些新的名字,这些名字可能没有以前那么糟糕,但为时已晚,几乎没有人使用它们:
在计算机中,几乎所有东西都是2的幂,所以通常避免使用基于十进制的单位,因为它们永远不会是圆的。
在您的示例中,使用base 2和base 10前缀呈现:
您想要的值可能是第一个给出的文件大小。