Длинный двойной на iPhone - PullRequest
       2

Длинный двойной на iPhone

2 голосов
/ 11 октября 2009

я работаю над приложением, которое требует от меня использования переменной Long Double, которая в C / C ++ / ObjC должна иметь точность до 15 плавающих значений (1.123456789012345), единственная проблема заключается в том, что на iphone я могу кажется, только отображать до 6 мест (1.123456), используя

NSString *display = [NSString stringWithFormat:@"%Lf",value];

Я читал, что iphone ограничивает эти значения, но не слишком много узнал об этом, у кого-нибудь есть идеи, как заставить его вернуть 15 баллов, как должно? спасибо!

Ответы [ 2 ]

5 голосов
/ 11 октября 2009

NSDecimalNumber даст вам до 38 цифр точности. NSDecimalNumbers не являются родными длинными двойными числами, но некоторые преобразования типов поддерживаются.

См. Также Этот вопрос .

2 голосов
/ 12 октября 2009

Long double просто отображает удвоение на аппаратном обеспечении iPhone. К сожалению, вы не получите той дополнительной точности, о которой думаете. Это сбило меня с толку рано, потому что iPhone Simulator будет правильно обрабатывать длинные удвоения, так как он работает на Mac.

Как предполагает Чарльз, вам нужно использовать NSDecimal или NSDecimalNumber, чтобы получить дополнительную точность. Кроме того, математика с этими типами будет свободна от обычных проблем с плавающей запятой, которые вы видите при обработке десятичных чисел.

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