Algarismos significativos
Escreva uma função que receba a representação em string de um número inteiro ou decimal e retorne a quantidade de algarismos significativos do número.
Os algarismos significativos são uma parte importante da ciência porque fornecem uma maneira fácil de mostrar, de relance, a precisão de uma medição. Em geral, quanto mais algarismos significativos um número tiver, mais precisa será a medição.
Os algarismos significativos são calculados observando os dígitos de um número e determinando a quantidade total de dígitos que são "significativos". As regras para decidir quais dígitos são significativos são as seguintes:
- Os dígitos diferentes de zero são significativos.
- Os
0que ficam entre dígitos diferentes de zero (independentemente da distância) são significativos. - Os
0à esquerda de todos os dígitos diferentes de zero não são significativos. - Os
0à direita de todos os dígitos diferentes de zero são significativos somente se o número contiver um ponto decimal.. - Se o número completo for igual a 0, retorne 0 para a quantidade de algarismos significativos.
- Os sinais negativos não afetam a quantidade de algarismos significativos.
Exemplos
sigFigs("15030") ➞ 4
sigFigs("0.0067") ➞ 2
sigFigs("-290.00") ➞ 5
sigFigs("-8080.") ➞ 4Observações
- Cada entrada consiste nos dígitos 0-9, junto com no máximo um ponto decimal
.e/ou um sinal negativo-. - O fato de dois números serem iguais não significa que eles tenham a mesma quantidade de algarismos significativos. Por exemplo,
1.02tem 3 algarismos significativos, enquanto1.020tem 4. - A função deve lidar corretamente com números que começam com um ponto decimal.
- Talvez expressões regulares sejam úteis para este problema.