Математика со смешанными переменными типами данных - PullRequest
0 голосов
/ 11 января 2011

Я рассчитываю процент с переменными смешанных типов данных.

int incompleteCritical = 12;
int total = 24;
float progress = 0;

NSLog(@"Incomplete Total: %d", incompleteCritical);
NSLog(@"Total Total: %d", total);

if (total > 0) {
    progress = ((float)incompleteCritical/(float)total)*100;
    NSLog(@"Progress: %d", progress);
}

Вывод на консоль выглядит следующим образом:

2011-01-11 10:02:59.993 [18570:207] Incomplete Total: 12
2011-01-11 10:02:59.993 [18570:207] Total Total: 24
2011-01-11 10:02:59.994 [18570:207] Progress: 0

Почему Progress не возвращает "50"?

1 Ответ

2 голосов
/ 11 января 2011

Вы используете неверную строку формата в своем выражении NSLog. %d используется для целых чисел. Вам нужно использовать %f при записи чисел с плавающей запятой. (T вот дополнительные параметры , которые нужно использовать для ограничения числа десятичных знаков и т.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...