Entendendo a contagem de dígitos em números inteiros
O número 100 tem exatamente três algarismos. Cada um deles — o 1, o 0 e o outro 0 — ocupa uma posição decimal distinta: unidades, dezenas e centenas. Parece simples, mas essa simplicidade esconde algumas nuances que todo mundo acaba ignorando até receber um bug no sistema por causa disso.
quantos algarismos tem o número 100
Três. O número 100 é composto por três algarismos dispostos na ordem: centena, dezena e unidade. Na prática, você pode confirmar isso dividindo o número pelo logaritmo na base 10 e pegando o piso mais um, ou simplesmente contando quantos caracteres ele ocupa na notação decimal padrão. No meu trabalho, a forma mais rápida e confiável é usar a função matemática floor(log10(n)) + 1, onde n é o número inteiro positivo. Para 100, log10(100) = 2, piso de 2 é 2, mais 1 dá 3. Funciona para qualquer número inteiro maior que zero. O problema é que essa abordagem quebra se você passar um número negativo ou zero sem tratar esses casos separadamente. Logaritmo de zero é indefinido, e logaritmo de negativo gera erro em praticamente todas as bibliotecas.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Um ponto que as pessoas esquecem é que o conceito de algarismo só faz sentido quando definido para uma base numérica específica. Algarismo conta posições em uma base — normalmente base 10 no dia a dia. Se alguém pedir quantos algarismos 100 tem em base 2, a resposta muda completamente, porque 100 em decimal vira 1100100 em binário, que tem sete algarismos. Já vi planilha de estoque quebrou porque o software converteu valores para notação científica e passou a contar o dígito da mantissa como parte do total de dígitos significativos. Outra armadilha comum envolve números decimais. Quando o número tem parte fracionária, a definição de "algarismos" perde o sentido se não for especificado se quer contar só a parte inteira ou incluir os decimais. Para 100,0, a contagem depende do critério. Em processamento de dados, eu sempre trato isso decidindo beforehand se vou considerar apenas a parte inteira ou o valor como string completa, porque o resultado afeta validações de campo numérico.
O limite real dessa abordagem é que ela funciona bem para inteiros, mas começa a falhar em contextos onde a precisão do entra em questão. Números muito grandes representam problemas de arredondamento em floats, então a fórmula baseada em logaritmo pode retornar um valor ligeiramente errado por causa da precisão limitada do tipo double. Para integers acima de 10^15, eu recomendo usar conversão para string e contar o tamanho, ou usar uma função especializada de contagem de dígitos baseada em divisões sucessivas por 10. É mais lento, mas não sofre com erros de ponto flutuante. Se o objetivo é só saber a resposta para 100, basta olhar e contar. Três algarismos. O resto é sobre garantir que a solução que você escreve hoje não quebre semana que vem quando o número mudar para algo do outro lado da escala.