В моем текущем приложении у меня есть уравнение, которое обычно решает довольно длинное количество десятичных чисел, то есть: 0.12345 или .123. Но способ, которым я должен это работать, - это показать только 1 или 2 десятичных числа, чтобы, по существу, произвести 0.12 или 0.1 на основе значений, о которых я упоминал.Как получить CGFloat из NSString?
Для того, чтобы сделать это, я сделал следующее: Взятые мой CGFloat к NSString:
CGFloat eX1 = 0.12345
NSLog(@" eX1 = %f", eX1); //This of course , prints out 0.12345
NSNumberFormatter *XFormatter = [[NSNumberFormatter alloc] init];
Xformatter.numberStyle=NSNumberFormatterDecimalStyle;
Xformatter.maximumFractionDigits=1;
NSString *eX1F = [formatter stringFromNumber:@(eX1)];
NSLog (@"eX1F = %@",eX1F); //This prints out 0.1
Но моя проблема в том, что мне нужно продолжать работать с этим как CGFloat после того, как был отформатирован , Я попытался взять строку обратно на число, выполнив: numberFromString
, но проблема в том, что работает только с NSNumber
.
Что я могу сделать, чтобы отформатировать CGFloat
и продолжать работать с ним как CGFloat
и не в NSString
или NSNumber
?
Update Я пробовал:
float backToFloat = [myNumber floatValue];
но результат номер неотформатированная: 0.10000
Мне нужны эти дополнительные 0s из
Значение поплавка/CGFloat не имеет «формат». Это чистое числовое значение, и любой «формат» накладывается на него любым отображением. –