Преобразовать значение float в NSString
Вы знаете, как я могу преобразовать значение float в значение nsstring, потому что с моим кодом возникает ошибка.
Мой код:
- (float)percent:(float)a :(float)b{
return a / b * 100;
}
- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {
// ....
float tx_nb_demande_portabilite = [self percent: [(NSNumber*) [stat nb_demande_portabilite] floatValue] :[(NSNumber*) [stat nb_users] floatValue]];
NSString *tx_nb_demande_portabilite_st = [NSString stringWithFormat:@"%@", tx_nb_demande_portabilite];
//....
}
Ошибка:
EXC_BAD ACCESS for NSString *tx_nb_demande_portabilite_st = [NSString stringWithFormat:@"%@", tx_nb_demande_portabilite];
Благодарим вас за помощь.
Ответы
Ответ 1
Вам нужно использовать спецификатор формата %f
для float, а не %@
.
NSString *str = [NSString stringWithFormat:@"%f", myFloat];
Чтобы использовать определенное количество цифр после десятичного использования %.nf
, где n - число цифр после десятичной точки.
// 3 digits after decimal point
NSString *str = [NSString stringWithFormat:@"%.3f", myFloat];
Obj-C использует форматирование стиля C printf
. Пожалуйста, проверьте печатную страницу для всех других возможных форматирования.
Ответ 2
еще один вариант:
NSString * str = [NSNumber numberWithFloat:value].stringValue;
Ответ 3
@"%f"
звучит как более подходящая строка формата для float
.
Ответ 4
[NSString stringWithFormat:@"%f", tx_nb_demande_portabilite];
Ответ 5
Современный (и менее подробный) подход:
NSString *str = @(myFloat).description;