Читая документацию, я должен был бы сделать что-то ужасное:
NSLocale *usLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease];
NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithString:@"0.00001" locale:usLocale];
Но: разве нет лучшего способа сообщить классу NSDecimalNumber, что нужно искать точку (.), А не что-нибудь еще? Места кажутся мне небезопасными. Что если однажды новый президент сочтет, что так круто изменить символ периода с . на , ? Тогда мое приложение вылетает. Конечно, этого не произойдет. Но есть небольшой шанс, что это возможно. Хватит меня пугать, используя для этого локаль; -)
Есть идеи? Или это мой единственный вариант? И если это единственный вариант: правильный ли подход выше? Или есть еще лучший?
И: Если я получу это право, объект NSDecimalNumber прочитает эту строку, проанализирует ее и создаст из нее значения мантиссы, экспоненты и isNegative для внутреннего использования, верно?
РЕДАКТИРОВАТЬ: я должен был упомянуть, что я добавляю эти значения программно / вручную (в моем коде), они не вводятся пользователем.