Parte Inteira E Parte Decimal
O que são e como extrair na prática
Na maioria das planilhas e linguagens de programação, um número real se divide naturalmente em dois pedaços: a parte que fica à esquerda da vírgula (ou ponto) e a que fica à direita. A parte inteira é o valor truncado na direção do zero. A parte decimal é o que sobra quando você subtrai essa parte inteira do original. Parece óbvio até você tentar automatizar isso em escala. No Excel, a função MAIS (INT) arredonda para baixo, o que funciona para positivos mas quebra números negativos. -3,7 vira -4, não -3. Se o seu dados vem de importações internacionais ou de APIs americanas com ponto como separador decimal, o INT() já entrega resultado errado sem aviso. Minha solução foi criar uma função helper que usa TRUNC() no lugar, que simplesmente corta após a casa decimal sem arredondar.
Calcular parte inteira e parte decimal passo a passo
A lógica básica é sempre a mesma. Você pega o valor, extrai a parte inteira, subtrai do original e pronto. O problema é que a implementação varia dependendo da ferramenta e dos dados. No Excel, para uma célula com o valor 47,83: Parte inteira: =TRUNC(A1) — retorna 47
Parte decimal: =A1-TRUNC(A1) — retorna 0,83 No Google Sheets a coisa é idêntica. Em Python com pandas, você usaria np.trunc() ao invés de int() por motivos que já citei. A diferença entre truncamento e arredondamento para baixo é a razão para vários bugs que vi acontecerem em produção, especialmente quando negativos aparecem sem ninguém esperar. Umapegadinha que quase ninguém menciona: precisão de ponto flutuante. 0,1 + 0,2 não é exatamente 0,3 em binário floating-point. Então o resultado de A1-TRUNC(A1) pode te dar 0,8299999999999983 em vez de 0,83. A correção é aplicar ROUND() ao redor do cálculo da parte decimal, com a quantidade de casas decimais que você precisa. ROUND(A1-TRUNC(A1), 2).

Armazenamento e formatação: onde as coisas realmente dão errado
O Excel armazena números internamente como floats de 64 bits (padrão IEEE 754). Isso significa que a parte decimal nunca é exata quando envolve frações como 1/3 ou 0,1. A parte inteira é mais previsível, mas ainda assim pode haver problemas de precisão em operações encadeadas. Quando você trabalha com moeda, isso vira questão crítica em segundos. Minha experiência mais chata com isso foi num relatório financeiro onde a parte decimal de milhares de linhas precisava ser somada para conferência de troco. O acúmulo de erros de ponto flutuante gerava uma diferença de 0,03 no total. A solução foi usar a função PRECISO() para strings formatadas, depois converter de volta. Não é elegante, mas funciona. Se você precisa de exatidão absoluta com decimais, a alternativa é trabalhar com números inteiros desde o início. Em vez de armazenar 47,83, armazene 4783 e trate tudo como centavos. Isso elimina a classe inteira de bugs que acabei de descrever. Bancos e sistemas de pagamento fazem isso há décadas.
Validação e extração automática em lote
Quando você precisa processar milhares de registros, fazer isso manualmente não é opção. No Excel, uma coluna auxiliar com a fórmula de parte inteira e outra com a parte decimal resolve rápido. O segredo é copiar a fórmula para toda a gama de uma vez — clique na célula, dobre o alça de preenchimento, espera dois segundos. Para dados sujos, com vírgulas em vez de pontos ou textos misturados, adicione uma etapa de limpeza antes: SUBSTITUIR(texto, ",", ".") e FORMATAR COMO NÚMERO. Em Python, o script é simples: leia o CSV, aplique np.trunc() para a parte inteira e subtraia para a decimal, salve de volta. Um arquivo de 50 mil linhas leva cerca de 3 segundos para processar inteiro no meu computador. Sem processamento paralelo, claro.
Parte inteira e parte decimal em SQL e sistemas reais
No SQL, a coisa fica mais verbosa. PostgreSQL usa ::int para casting e o operador % para módulo, mas % em negativos tem comportamento que depende do banco. MySQL tem funções MOD() e FLOOR() que também não são equivalentes. A forma mais segura que encontrei foi: Parte inteira: FLOOR(valor) para positivos, mas isso falha com negativos. O correto é usar TRUNCATE(valor, 0) se o banco suportar, ou CASE WHEN valor >= 0 THEN FLOOR(valor) ELSE CEILING(valor) END. Parte decimal: valor - parte_inteira, com ROUND() para estabilizar.

Em bancos de dados analíticos onde esse tipo de operação é frequente, vale a pena criar uma view ou função definida pelo usuário para não repetir a lógica errada toda vez.
Erros comuns que vejo todo dia
Usar INT() no Excel achando que é truncamento. Errado para negativos. Confiar no resultado direto da subtração para parte decimal sem ROUND(). O float error aparece em 7 em cada 10 casos com números que têm muitas casas. Tentar extrair parte decimal de strings não convertidas. O Excel não reclama na hora, mas devolve 0 ou erro silenciosamente dependendo da versão.
Trabalhar com dados de várias regiões sem padronizar separadores decimais. Um arquivo vindo dos EUA com ponto e outro do Brasil com vírgula vão se misturar e gerar partições inteiras completamente erradas. Ao invés de resolver isso manualmente, configure o regional do sistema ou force a conversão com VALOR() antes de qualquer operação. Isso evita pelo menos metade dos problemas que encontro em planilhas de usuários finais.

Resumo prático
A parte inteira e parte decimal de um número são conceitos simples, mas a implementação prática esbarra em arredondamento, precisão de floats e formatação de dados. A regra que vale na maior parte dos casos: use TRUNC() ao invés de INT(), aplique ROUND() na parte decimal resultante, e quando o assunto for dinheiro, abandone floats e trabalhe com inteiros desde o início. O tempo que você gasta corrigindo bugs de precisão depois custa muito mais do que fazer certo desde o começo.
Galeria
-
Tabela Numero Decimal | PDF -
Números decimales: qué son y cómo se leen (con tabla) - Enciclopedia ...