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
,然后再进行除法