Хотя другой ответ на этот вопрос связан с правильным объяснением концепции значащих цифр в целом, свойства 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.