O que descreve NSNumberFormatter -maximumSignificantDigits?
-
19-09-2019 - |
Pergunta
Não há nenhum texto na documentação sobre o que isso significa, mas soa muito importante para compreender, a fim de não ter problemas. Alguém sabe o que isso é tudo sobre os "dígitos significativos" de um número?
Solução
Consulte aqui para um bom tutorial on dígitos significativos. Muito simples explicação seria:. O número de dígitos que são utilizados para os cálculos de dentro de seu aplicativo
Outras dicas
Apesar da outra resposta sobre esta questão links para uma explicação correta do conceito de dígitos significativos em geral, propriedades NSNumberFormatter
de {uses|minimum|maximum}SignificantDigits
não tem nada a ver com a precisão dos cálculos.
Os dígitos significativos são o grupo de dígitos em um número a partir do primeiro dígito diferente de zero para o último dígito diferente de zero, inclusive, geralmente a menos zeros à direita são fracionada . Restringindo a saída para um número específico de algarismos significativos é útil se um relação (percentagem) de erro é conhecido ou desejado.
Em primeiro lugar, o minimumSignificantDigits
e maximumSignificantDigits
não têm nenhum efeito a menos usesSignificantDigits
está definido para YES
. Se este for o caso, o seu efeito é provavelmente mais facilmente explicados usando exemplos.
Vamos dar os números a = 123.4567
, b = 1.23
e c = 0.00123
:
Assumindo minimumSignificantDigits = 0
, 1
ou 2
:
Se maximumSignificantDigits = 3
, então a
será formatado como "123", b
como "1,23", e c
como "0,00123".
Se maximumSignificantDigits = 4
, então a
será formatado como "123 0,5 ", b
como "1,23" e c
como "0,00123".
Se maximumSignificantDigits = 2
, então a
será formatado como "12 0 ", b
como "1.2" e c
como "0,0012".
Assumindo minimumSignificantDigits = 4
:
Se maximumSignificantDigits = 4
, então a
será formatado como "123. 5 ", b
como "1,23 0 ", e c
como "0,00123 0 ".
Nota: O 4 ? 5 conversões ocorrer devido ao modo round-a-mais próximo, como o dígito seguinte a 4 em um é 5.