Как определить десятичные разряды при форматировании объектов NSNumber?

Потребовалось немного проверить, но это тип структуры

list {aka struct Node *}

Согласно компилятору. Другими словами, list является указателем, и вызов malloc выделит память для указателя.

Вы делали это раньше в своей функции create_Node (), в строке сразу после

list head = (list)malloc(sizeof(Node));

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

То, что malloc определенно делает в этом контексте, будет выделять размер байтов узла и возвращать указатель void, который вы приведете к списку (или узлу *). Список больше не будет неинициализирован и не будет иметь неопределенного поведения, поэтому он работает.

10
задан jpm 8 February 2009 в 00:35
поделиться

3 ответа

Ваша строка формата должна иметь"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.

16
ответ дан 3 December 2019 в 16:11
поделиться

Вы могли бы быть более обеспечены с 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 имеет тенденцию быть пожирателем ресурсов производительности, но это - проблемы для другого потока.

3
ответ дан 3 December 2019 в 16:11
поделиться

Я верю тому, что Вы ищете: "%.2f"

Худший вариант развития событий, можно разделить значение, проверка, если существует что-нибудь после десятичного числа. Если нет, добавляют 00 вручную?

7
ответ дан 3 December 2019 в 16:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: