我正在尝试获取一个文件并将其拆分为512kb块.要计算块的数量,我需要做一些基本的数学运算.出于某种原因,我遇到了一些数据丢失问题.我无法弄清楚我做错了什么.我目前有:
int chunkSize = 524288; // 512kb
int fileByteCount = GetFileSizeInBytes();
decimal result = ((decimal)(fileByteCount)) / ((decimal)(chunkSize));
int packetCount = Math.Ceiling(result); // Doesn't work.
Run Code Online (Sandbox Code Playgroud)
我不能使用Math.Ceiling,因为它需要一个double.但是,我认为,我需要使用小数来进行数学运算.我究竟做错了什么?我该如何进行基本的数学运算?
使用整数数学:
int chunkSize = 524288; // 512kb
int fileByteCount = GetFileSizeInBytes();
int packetCount = (fileByteCount + chunkSize - 1) / chunkSize;
Run Code Online (Sandbox Code Playgroud)
请注意,文件大小应该很长,传输大于2千兆字节的文件并不罕见.