Что описывает NSNumberFormatter -maximumSignificantDigits? - PullRequest
5 голосов
/ 24 августа 2009

В документации нет текста о том, что это значит, но это очень важно понять, чтобы не столкнуться с неприятностями. Кто-нибудь знает, что это все о «значащих цифрах» числа?

Ответы [ 2 ]

17 голосов
/ 28 октября 2012

Хотя другой ответ на этот вопрос связан с правильным объяснением концепции значащих цифр в целом, свойства NSNumberFormatter *1001* не имеют ничего общего с точностью вычислений.

Значимые цифры - это группа цифр в номере от первой ненулевой цифры до последней ненулевой цифры включительно, обычно, если конечные нули не равны дробных . Ограничение вывода определенным числом значащих цифр полезно, если известна или желательна относительная (процентная) ошибка.

Прежде всего, minimumSignificantDigits и maximumSignificantDigits не имеют никакого эффекта, если usesSignificantDigits не установлен на YES. Если это так, то их эффект, вероятно, легче всего объяснить с помощью примеров.

Давайте возьмем числа a = 123.4567, b = 1.23 и c = 0.00123:

Предполагая minimumSignificantDigits = 0, 1 или 2:

Если maximumSignificantDigits = 3, то a будет отформатирован как «123», b как «1.23» и c как «0.00123».

Если maximumSignificantDigits = 4, то a будет отформатирован как «123 .5 », b как «1.23» и c как «0.00123».

Если maximumSignificantDigits = 2, то a будет отформатирован как «12 0 », b как «1.2» и c как «0.0012».

Предположим, minimumSignificantDigits = 4:

Если maximumSignificantDigits = 4, то a будет отформатирован как "123. 5 ", b как "1.23 0 " и c как "0,00123 0 ".

Примечание. Преобразования 4 5 происходят из-за режима округления до ближайшего, поскольку цифра, следующая за 4 в a, равна 5.

0 голосов
/ 24 августа 2009

См. здесь для хорошего учебника по значительным цифрам. Очень простое объяснение: количество цифр, используемых для расчетов в вашем приложении.

...