所以我试图划分两个变量的类型long long
,totalBytesWritten
和totalBytesExpected
划分long long类型的变量以获得百分比?
基本上我试图找出百分比完成我的文件上传并相应更新进度。 例如,我发送262144的1839948字节
但是,当我做double progress = totalBytesWritten/totalBytesExpected
它给了我一些意想不到的数字。当我NSLog的进展我只得到0,然后终于1.
谢谢!
所以我试图划分两个变量的类型long long
,totalBytesWritten
和totalBytesExpected
划分long long类型的变量以获得百分比?
基本上我试图找出百分比完成我的文件上传并相应更新进度。 例如,我发送262144的1839948字节
但是,当我做double progress = totalBytesWritten/totalBytesExpected
它给了我一些意想不到的数字。当我NSLog的进展我只得到0,然后终于1.
谢谢!
你正在执行一个整数除法,然后结果会变成双精度值,但已经太晚了:你已经失去了精度。如果你只是将两个操作数中的一个赋值为double,另一个将会提升到双,你会得到一个浮点值结果:
NSLog(@"%f,"(double)totalBytesWritten/totalBytesExpected);
long long
是一个非十进制数据类型,所以它使用整数除法。因此,由于totalBytesWritten
可能(有希望)小于totalBytesExpected
,因此您将始终得到0.请尝试先将它们转换为double
,然后再进行除法。