現在のプロジェクトでバイトをギガバイトに変換するときに問題が発生しました。最初に私はこれをしました:
long requiredDiskSpace = 5000000000000; // In bytes
int gb = (int)requiredDiskSpace / 1024 / 1024 / 1024;
この計算は 0 になります (正解は 4 656 のはずです)。decimal
次に、次のようにタイプに切り替えました。
long requiredDiskSpace = 5000000000000; // In bytes
decimal gb = requiredDiskSpace / 1024 / 1024 / 1024;
int gbAsInt = (int)gb;
この計算は (正しく) gbAsInt
4 656 になります。
さて、私の質問は簡単です。なぜ?私には、実際の計算で int だけを使用できない理由がわかりません。