Разделите int и верните число - PullRequest
1 голос
/ 17 ноября 2011

У меня есть проблема, которую я не могу исправить с помощью номера, я объясню. В какой-то момент в моем коде я вызываю функцию, которая возвращает int, затем делю ее и получаю число с плавающей точкой с двумя десятичными знаками.

Мой бывший 69033792 Fuzion обратно, я хочу разделить на 1024 и 67415,81 Я пишу

NSInteger mem_0 = [self printMemoryInfo:@"0"];
    [self.mem1 setText:[NSString stringWithFormat:@"%.2f",(mem_0/1024f)]];

но я не возвращаю десятичную часть ... Что не так?

спасибо

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011
myDouble = [[NSNumberFormatter alloc] init]; 
[myDouble setFormatterBehavior:NSNumberFormatterBehavior10_4]; 
[myDouble setNumberStyle:NSNumberFormatterDecimalStyle];
[myDouble setRoundingMode:NSNumberFormatterRoundHalfUp];
[myDouble setMinimumFractionDigits:0];
[myDouble setMaximumFractionDigits:2];
    NSInteger mem_0 = [self printMemoryInfo:@"0"];
    [self.mem1 setText:[myDouble stringFromNumber:[NSNumber numberWithDouble: mem_0/1024]]];
    [myDouble release];
1 голос
/ 17 ноября 2011

Вы должны получить ошибку времени компиляции "Недопустимая цифра 'f' в десятичной константе", потому что 1024f недопустимо.Вы должны сказать это так:

[self.mem1 setText:[NSString stringWithFormat:@"%.2f",(mem_0/1024.0f)]];

или вы можете просто сказать 1024.0 без f, потому что оно все равно будет передано в stringWithFormat: как двойное число.

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