NSNumberFormatter-DecimalStyle-При редактировании числа форматера его результат к 0 - PullRequest
0 голосов
/ 11 ноября 2011

Я использовал приведенный ниже код для форматирования введенных символов в десятичном стиле, я использую приведенный ниже код в textFieldShouldEndEditing:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];

[formatter setNumberStyle:NSNumberFormatterDecimalStyle];

long long num = [[formatter numberFromString:textField.text] longLongValue];

NSString *formattedOutput = [formatter stringFromNumber:[NSNumber numberWithLongLong:num ]];

textField.text = formattedOutput;

[formatter release];

У меня есть проблема в приведенном выше коде, в первый раз он работает нормально, но когда мыВернувшись к текстовому полю и отредактировав его, выйдя из него, затем значение изменится на 0,

Например, я ввел начальное значение 123456789 и правильно получил вывод 123 456 789.Если я затем заново введу и отредактирую текстовое поле на 123 456,78, то в поле будет добавлено 0, тогда как оно должно было составлять 12 345 678.

1 Ответ

2 голосов
/ 11 ноября 2011

NSNumberFormatter зависит от правильности форматирования текста в нем.

Поэтому, когда вы удаляете последнюю цифру из своего номера ... то есть, где число теперь выглядит так:

123,456,78

Число теперь неверно отформатировано, и NSNumberFormatter предполагает, что это недопустимое число, и возвращает ноль.

Если вы хотите получить надежные длинные длинные значения из вашего текстового поля, удалитезапятые перед преобразованием (при проверке текстового поля, чтобы убедиться, что там только 0-9 цифр), и вы должны быть в порядке.

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