2017-06-21 4 views
2

メガバイトを適切な単位に変換する必要があります。バイトから人間が読めるサイズ(npmパッケージ)filesize

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

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

9.77GBが間違っているようです。私はそれがオンラインのGoogleのコンバータを使用して変換するとき、私は得る:

10485760000バイト= 10,48576ギガバイト

が、これは、このようbehavorをパッケージ化しているのはなぜ?

答えて

2

SI単位は小数に基づいて(主に)しているので、彼らのプレフィックスを行います

  • キロ(K):10 = 1,000
  • メガ(M):10 = 1,000,000
  • ギガ(G):10 =ディジタルベース2台のコンピュータは、彼らが新たなプレフィックスを考案開発された10億

。価値についての合意はすぐに達成されましたが、キャッチーな名前を見つけることは容易ではありませんでした。残念ながら、SIのものは、私たちは素敵な混乱になってしまったところ、最終的に広がっ名:

  • キロ(K):2 = 1024
  • メガ(M):2 = 1,048,576
  • ギガ(G):2 = 1073741824

その後、誰かが間違いなく以前のものほど悪くはなかったいくつかの新しい名前を発明したが、それは遅すぎるとアルモました

  • 吉備(KI):2 = 1024
  • mebi(MI):2 = 1,048,576
  • gibi(GI):2 = 1,073,741,824番目の誰もそれを使用しません

コンピュータでは、ほぼすべてが2の累乗であるため、小数点ベースの単位は通常丸められないため避けられます。ベース2と、ベース10件の接頭辞を使用した例では

は、このレンダリング:2分の10485760000 = 9.765625ジブ

  • 10分の10485760000 = 10.48576ギガバイト
    • あなたが望む値は、それがファイルサイズであると考えられる最初の値です。

    +0

    を完全に説明しました –

    3

    ギガバイトという用語は、通常1000^3バイトまたは1024^3バイトのいずれかを意味します。

    出典:Wikipedia

    filesizeパッケージは、デフォルトでは^ 3 1024を使用しています。あなたはbaseオプション(2デフォルト)を指定して、それを変更することができます。

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

    Run in Runkit

    関連する問題