Objective c 除以long-long类型的变量以获得百分比?

Objective c 除以long-long类型的变量以获得百分比?,objective-c,long-integer,Objective C,Long Integer,所以我试图划分两个变量,分别是long-long,totalbytesswrite和totalbytessexpected 基本上,我试图计算完成文件上传的百分比,并相应地更新progressbar。 例如,我正在发送1839948字节中的262144字节 但是当我做double progress=TotalBytesWrited/totalBytesExpected时,它会给我一些意想不到的数字。当我记录进度时,我只得到0,最后得到1 谢谢 您正在执行整数除法,然后结果将转换为双精度,但为时已

所以我试图划分两个变量,分别是
long-long
totalbytesswrite
totalbytessexpected

基本上,我试图计算完成文件上传的百分比,并相应地更新progressbar。 例如,我正在发送1839948字节中的262144字节

但是当我做
double progress=TotalBytesWrited/totalBytesExpected
时,它会给我一些意想不到的数字。当我记录进度时,我只得到0,最后得到1


谢谢

您正在执行整数除法,然后结果将转换为双精度,但为时已晚:您已经失去了精度。如果您只是将两个操作数之一转换为双精度,则另一个操作数也将升级为双精度,并且您将得到一个浮点数:

NSLog(@"%f,"(double)totalBytesWritten/totalBytesExpected);

long
是一种非十进制数据类型,因此它使用整数除法。因此,由于
totalBytesWrite
可能(希望)小于
totalBytesExpected
,因此您将始终得到0。尝试先将它们转换为
double
,然后再进行除法