Вы не можете напрямую удалить ведущий 0
при форматировании значения с плавающей запятой с использованием stringWithFormat:
и %f
. Вам придется самостоятельно удалить его из результата:
NSString *result = [NSString stringWithFormat:@"%.2f", 0.45];
if ([result hasPrefix:@"0."]) {
result = [result substringFromIndex:1];
}
Но лучшим решением будет использование NSNumberFormatter
. Установите minimumIntegerDigits
на 0
, чтобы избежать ведущего 0
.
NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
fmt.numberStyle = NSNumberFormatterDecimalStyle;
fmt.minimumInterDigits = 0;
NSString *result = [fmt stringFromNumber:@(0.45)];
Преимущество заключается в правильном форматировании результата для локали пользователя (кроме удаления начального 0).
Лучше всего избегать удаления начальных 0. Вывод может сбивать пользователей с толку.