Преобразование длинного NSString в NSNumber

Я не могу надежно преобразовать более длинный NSString в NSNumber . В частности, я конвертирую MPMediaEntityPropertyPersistentID как строку в NSNumber Иногда это работает, обычно это не так.

Код конверсии:

  NSString *keke = [jsonArray objectForKey:@"next"]; NSNumberFormatter * f = [[NSNumberFormatter alloc] init]; [f setNumberStyle:NSNumberFormatterDecimalStyle]; NSNumber *persistentIDasNumber = [f numberFromString:keke]; 

Ниже приведен пример успешного преобразования строки в число:

 String: 3813955856659208324 Number: 3813955856659208324 

И вот неудачная конверсия:

 String: 12790162104953153719 Number:1.279016210495315e+19 

Это близко, но что происходит в конце? Он слишком велик?

По-видимому, наибольшее целое число, которое может быть обработано с помощью NSNumberFormatter, длинное, это 9223372036854775807. Все, что выше этого, потеряет точность и не выйдет, когда вы положите его.

Вместо этого используйте NSDecimalNumber, конкретный подкласс NSNumber. И он может даже анализировать строки:

 NSDecimalNumber *dn=[[NSDecimalNumber alloc]initWithString:@"12790162104953153719"]; NSLog(@"dn: %@",dn); 

NSDecimalNumber может обрабатывать до десятизначных цифр до 38 цифр, прежде чем теряет точность.

Вот как вы это делаете:

 unsigned long long number = [[jsonArray objectForKey:@"next"] longLongValue]; NSNumber * numberValue = [NSNumber numberWithUnsignedLongLong:number]; 
  • iOS UICollectionView внутри UITableViewCell
  • возможно ли изменить тайминги по умолчанию в icalendar с помощью eventkit?
  • Схема iOS UICollectionViewCells с пересечением
  • обработка push-уведомлений на разные виды
  • Какой из методов включения защиты данных на iOS необходим?
  • Как я могу оживить контейнер UIView, чтобы уменьшить его высоту?
  • Необходимо выполнить цикл через NSMutableArray, который хранится внутри массива в базе данных Parse.com
  • Включить масштабирование в uiscrollview с включенным пейджингом и прокруткой
  • возможно ли swizzle addObject: в NSMutableArray?
  • Доля изображения на Whatsapp из приложения iOS без использования UIDocumentInteractionController
  • Что делать с местным игроком, если приглашение принято? (Игровой центр)
  • Interesting Posts

    Измерение сильных / слабых воздействий ссылок ARC – Влияние на время выполнения

    Firebase создает пользователя по электронной почте, паролю, отображаемому имени и URL-адресу фотографии

    Только ландшафтный режим ОДИН ВИД

    Facebook return com.facebook.sdk ошибка 5 во время Friend Wall Post

    Facebook Graph Request возвращает имя, но не адрес электронной почты

    Проблема UITapGestureRecognizer в iOS 9

    Как получить доступ к облачным дискам для быстрого импорта файлов в мое приложение?

    Отслеживание анимации смены кадров UIView

    FBFriendPickerViewController показывает и пустую таблицу на iOS. Место Picker работает отлично

    Есть ли какие-либо частные api для iphone, которые обнаруживают смс, отправленные или полученные

    Интеграция библиотеки C ++ в приложение iPhone

    Обновление всех контроллеров представления UITabBarController

    NSFetchedResultsControllerDelegate анимировать удаление на неправильном indexPath

    Добавьте границу и тень вокруг непрозрачных пикселей UIImage

    UITextView смещает текст по-другому, чем UILabel

    Давайте будем гением компьютера.