Contar algarismos em números: o que funciona na prática
A pergunta mais simples dessa área é também a que mais gera confusão quando você está corrigindo exercícios ou montando uma planilha de dados. Quantos algarismos um número tem? Parece óbvio até aparecer o primeiro zero à esquerda ou um número muito grande escrito em notação científica. Vou começar pelo método que eu realmente uso no dia a dia, porque a definição de livro didático não resolve os casos que aparecem na prática.
Os números abaixo são formados por quantos algarismos
A forma mais direta de contar algarismos é dividir o número por potências de 10 até encontrar a ordem correta. Se você tem o número 7.342, ele está entre 1.000 (10³) e 9.999 (10 - 1), então tem quatro algarismos. A regra geral é: um número N tem exatamente floor(log(N)) + 1 algarismos, desde que N seja um inteiro positivo. Para N = 0, a conta dá errado e o número tem um único algarismo. Esse é o primeiro detalhe que todo mundo esquece. Na prática, eu não faço essa conta de cabeça. Eu converto o número para string e uso o comprimento da sequência. Em Python, por exemplo, len(str(abs(n))) resolve tudo, inclusive negativos. Em Excel, = Comprimento(VALOR.CÉLULA) funciona da mesma forma. Essa abordagem evita erro de arredondamento em potências de 10 exatas como 1000, 10000, 100000, que são os pontos onde a fórmula matemática trapaceia se você não usar o piso correto.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Eu tive um problema específico recentemente com um lote de códigos postais que estavam sendo tratados como números em vez de texto. O CEP 01310-100 virava 1310100 na base de dados, e automaticamente eu perdia o zero à esquerda. Contar algarismos ali dava cinco em vez de oito, e a validação de integridade quebrava em produção. A solução foi forçar o formato texto na importação e tratar os zeros à esquerda como parte da representação, não como ornamento. Se você trabalha com dados que podem ter zeros significativos à esquerda, nunca use representação numérica para isso. Use string desde o início. O que muita gente não considera é que algarismo e dígito são a mesma coisa em base decimal, mas a interpretação muda conforme a base. Um número binário como 1010 tem quatro algarismos, embora seu valor decimal seja dez. Em sistemas embarcados e processamento de imagens, eu vejo erro frequente de alguém contar "dez" como dois algarismos quando na verdade o registro interno opera com quatro bits. A pergunta correta sempre deveria ser: em qual base você está contando?
Outro ponto cego é a diferença entre algarismos significativos e algarismos totais. Se você mede 0,0042 metros, o número tem quatro algarismos na representação, mas apenas dois são significativos do ponto de vista da precisão da medição. Em planilhas de controle de qualidade, eu já vi relatórios errados porque o engenheiro contou todos os dígitos visíveis sem separar o conceito. A norma ISO 31-0 exige clareza nessa distinção, e documentos que misturam os dois termos geram retrabalho enorme depois. Para números muito grandes, a contagem manual é inviável e aí entra a notação científica. 3,2 x 10 tem os algarismos 3 e 2 escritos, mas o número completo tem nove posições. Se o objetivo é saber quantas casas decimais o número ocupa em um sistema de armazenamento fixo, a resposta depende do tipo de dado. Um int64 comporta até 19 algarismos. Um float64 comporta cerca de 15 a 17 dígitos significativos, mas a representação visual pode variar dependendo da configuração de formatação.
Se você precisa validar quantos algarismos um campo deve ter, como em CPF, CNPJ ou códigos de produto, a abordagem mais segura combina duas camadas: validação de comprimento por regex e validação de conteúdo por dígito verificador. Só contar algarismos não garante nada. Um CPF com 11 dígitos pode ser perfeitamente válido numericamente e ainda assim falso, se os dígitos verificadores não conferirem. Eu configurei um pipeline de ingestão que rejeita registros com comprimento errado antes mesmo de calcular o módulo 11, e isso cortou o volume de erros em produção em cerca de setenta por cento, porque a maior parte dos inputs defeituosos vem de exportações mal formatadas que simplesmente perdem ou duplicam casas. Resumindo o que funciona: defina claramente se está contando algarismos em base dez, trate zero como caso especial, prefira conversão para string quando estiver manipulando dados e não quando estiver fazendo teoria dos números, e se houver zeros à esquerda relevantes, trate como texto desde o início. Isso evita a maioria dos problemas que eu vejo aparecendo em projetos reais.