在我当前的项目中将字节转换为千兆字节时遇到了一些麻烦。最初我是这样做的:
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 。