Выведите число с плавающей точкой без нуля до десятичной точки - PullRequest
0 голосов
/ 02 июля 2018

Мне интересно, как число с плавающей точкой с нулем, за которым следует десятичное число, за которым следуют такие цифры:

0.45

... чтобы обнулить ноль перед десятичной запятой, как это:

.45

в строке NSSt с использованием метода [NSString stringWithFormat:] с использованием Objective C.

1 Ответ

0 голосов
/ 02 июля 2018

Вы не можете напрямую удалить ведущий 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. Вывод может сбивать пользователей с толку.

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