2017-06-21 34 views
2

我需要將兆字節轉換爲適當的單位。字節人類可讀大小與npm包文件大小

parseInt(10000) * 1024 * 1024 //10485760000 byte 

filesize(parseInt(10000) * 1024 * 1024); // "9.77 GB" 

9.77 GB似乎是錯誤的。當我轉換使用谷歌轉換器它在線,我得到:

10485760000字節= 10,48576技嘉

爲什麼這個包behavor這樣嗎?

回答

2

,所以做他們的前綴:

  • 千克(K):10 = 1,000
  • 兆(M):10 = 1,000,000
  • 千兆(G):10 = 1,000,000,000

當數字基2臺計算機被開發他們發明新前綴。關於價值的協議很快就達成了,但要找到吸引人的名字並不容易。不幸的是,最終蔓延在SI的,所以我們結束了一個很好的混亂名稱:

  • 公斤(K):2 = 1024
  • 兆(M):2 = 1,048,576
  • 千兆(G):2 = 1,073,741,824

然後,有人發明了可以說是並不像以前的那樣糟糕一些新的名字,但爲時已晚,阿爾莫ST無人使用它們:

  • 吉備(KI):2 = 1024
  • MEBI(MI):2 = 1,048,576
  • 吉比(GI):2 = 1073741824

在計算機中幾乎所有東西都是2的乘方,所以基於小數的單位通常會被避免,因爲它們從不是圓的。

在您的例子,使用基體2和基體10名的前綴呈現此:

  • 2分之10485760000 = 9.765625吉布
  • 10分之10485760000 = 10.48576 GB

您想要的值可能是第一個給定它是文件大小的值。

+0

完美解釋 –

3

術語千兆字節通常用於表示1000^3字節或1024^3字節。

來源:Wikipedia

filesize包默認使用1024^3。您可以通過指定base選項(默認爲2)更改:將SI單位(主要是)基於小數

filesize(10000 * 1024 * 1024, { base: 10 }) // 10.49 GB 

Run in Runkit