Подтвердить что ты не робот

Преобразовать значение 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];

Благодарим вас за помощь.

4b9b3361

Ответ 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;