Рассчитать процент загрузки в Задаче C - PullRequest
1 голос
/ 04 октября 2011

Я застрял с проблемой, которая выглядела довольно легко, но я не могу заставить ее работать.

Я делаю простой менеджер загрузок для OSX, используя цель C. Как часть приложения, я пытаюсь вычислить процент текущей загрузки. я пытаюсь использовать этот код, но он не будет работать для меня

long double precent = (bytesDownloaded/downloadSize) * 100;
NSLog(@"precnt %Lf",precent);
NSLog(@"Downloadedbyret: %lld", bytesDownloaded);

Размеры загруженных и загруженных байтов длинные.

Может кто-нибудь посоветовать, спасибо

Ответы [ 3 ]

4 голосов
/ 04 октября 2011

Чтобы получить правильный ответ, вы должны привести значения в long double.

long double precent = ((long double)bytesDownloaded/(long double)downloadSize);
NSLog(@"precnt %Lf",precent);
NSLog(@"Downloadedbyret: %lld", bytesDownloaded);
0 голосов
/ 04 октября 2011

Для выполнения% вам нужно умножить на 100.

long double precent = (bytesDownloaded/downloadSize) * 100.0;

если значения bytesDownloaded и downloadSize являются int, вам нужно привести их к значению с плавающей запятой.

Или если целые числа кратны дивиденду сначала на 100:

(bytesDownloaded * 100) / downloadSize;
0 голосов
/ 04 октября 2011

Знаменатель - int, изменить его на число с плавающей точкой? Попробуйте:

long double precent = (bytesDownloaded/(downloadSize * 1.0));
NSLog(@"precnt %Lf",precent); 
NSLog(@"Downloadedbyret: %lld", bytesDownloaded);
...