Потребовалось немного проверить, но это тип структуры
list {aka struct Node *}
Согласно компилятору. Другими словами, list является указателем, и вызов malloc выделит память для указателя.
Вы делали это раньше в своей функции create_Node (), в строке сразу после
list head = (list)malloc(sizeof(Node));
Если вы этого не делаете, вы выполняете действия с неинициализированным указателем, который является неопределенным поведением и не должно работать, поскольку у вас явно нет места в используемой памяти.
То, что malloc определенно делает в этом контексте, будет выделять размер байтов узла и возвращать указатель void, который вы приведете к списку (или узлу *). Список больше не будет неинициализирован и не будет иметь неопределенного поведения, поэтому он работает.
Ваша строка формата должна иметь"0
"для каждого десятичного разряда Вы хотите всегда существовать.
[formatter setFormat:@"###.00"];
для "55,23" и ".23" и ".20"
[formatter setFormat:@"##0.00"];
для "55,23" и "0.23" и "0.20"
Посмотрите строковый синтаксис числового формата (версии Mac OS X 10.0 к 10,3)
Или можно использовать 10,4 средств форматирования с - setMinimumFractionDigits: и - setMaximumFractionDigits: с обоими наборами к 2.
Вы могли бы быть более обеспечены с localizedStringWithFormat, как так...
[UILabel alloc] initWithFrame:CGRectMake(80.0f, 90.0f, 225.0f, 40.0f)];
label.backgroundColor = [UIColor clearColor];
label.textColor = [UIColor whiteColor];
int bytes = 1024 * 1024;
label.text = [NSString localizedStringWithFormat:@"0.00 MB of %.2f MB", ([self.totalFileSize floatValue] / bytes)];
И конечно, байты могли быть неподписанной константой, и clearColor имеет тенденцию быть пожирателем ресурсов производительности, но это - проблемы для другого потока.
Я верю тому, что Вы ищете: "%.2f"
Худший вариант развития событий, можно разделить значение, проверка, если существует что-нибудь после десятичного числа. Если нет, добавляют 00 вручную?