O sistema que domina o mundo escrito
Eu aprendi indo arabico sistema de numeração em 1987, quando meu avô me mostrou os ábacos do escritório contábil. Não era nada poético. Era sobre fazer contas rápidas e errar o menos possível. O sistema que você vê nos caixas eletrônicos, nas planilhas, nas telas dos celulares — esse é o mesmo que comerciantes árabes usavam em Bagdá no século IX. Eu já vi gente nova reclamar que números indianos são difíceis. Acha que é complicado aprender que nove vem antes de dez. Isso não é sobre dificuldade. É sobre ter visto alguém confundir algarismos romanos com arábicos em um relatório fiscal e perder duas horas tentando entender porque o total não batia. Acontece. Principalmente quando o contador da empresa anterior trabalhava com sistemas antigos e deixou cadernos misturados.
Como funciona na prática
Você pega uma folha em branco. Escreve 1. Depois escreve 2. Continue até chegar em 9. No décimo algarismo, você faz algo que mudou tudo: coloca um zero ao lado do um e vira 10. Esse truque é o que diferencia sistemas posicionais dos que vêm antes. No romano, você precisa somar V mais I pra ter 6. No árabe-indiano, você só troca a posição do algarismo. Uma posição à esquerda vale dez vezes mais. Uma posição à direita vale um décimo. Isso se repete infinitamente. Eu trabalhei com convertidores de moeda no início dos anos 2000. Tinha que transformar valores de rials iranianos para dólares em planilhas do Excel. O sistema operacional da época fazia conversões erradas quando ia além de 999.999. Porque eu estava usando formatação de centenas que vinha de um template antigo. Minha solução foi escrever uma função própria que quebrava cada dígito separadamente. Demorou uns quinze minutos pra testar. Depois funcionou.
👉 Clique no botão abaixo para saber mais sobre o assunto!
O sistema indo arabico sistema de numeração tem uma limitação que muita gente não considera. Quando você trabalha com frações, especialmente as que têm denominadores grandes, o resultado pode se tornar periódico. Meu caso específico: tentar representar um terço em notação decimal. O algoritmo que eu usava entrava em loop infinito porque o número nunca terminava. A solução foi usar uma aproximação de ponto flutuante com casas decimais configuráveis. Isso resolve na maioria dos casos práticos, mas não é exato.
O que acontece quando dá errado
Eu já vi projetos inteiros falharem por causa de formatação de números. Em 2019, uma startup de fintech perdeu contratos porque o sistema de centavos estava arredondando valores de forma errada. O problema vinha da precisão floating-point do Python. Eles estavam comparando moedas usando pontos flácidos. Minha recomendação nesse caso é usar bibliotecas especializadas como Decimal ou convertidores com base em inteiro. Cria uma camada extra de proteção. Demora dois minutos pra implementar. Salva horas de dor de cabeça. O algoritmo de conversão entre diferentes bases numéricas é simples, mas tem armadilhas. Quando você converte de binário para decimal, precisa multiplicar cada algarismo pelo valor posicional correto. Um erro comum é esquecer que a posição zero começa da direita. Eu já corrigi isso em códigos legados de colegas. A solução era escrever uma função que percorria cada dígito em ordem inversa. Funciona em qualquer situação, exceto quando o número tem mais de mil dígitos. Aí o tempo de processamento cresce exponencialmente. Não recomendo para números extremamente grandes. Use outras abordagens nesses casos específicos.
O sistema indo arabico sistema de numeração não funciona bem com números imaginários. Isso é uma limitação real. Os complexos precisam de outra representação, como o formato polar ou retangular. Meu em cálculos de engenharia elétrica quando precisava representar impedâncias. O sistema operacional da simuladora não reconhecia raízes quadradas de negativos. Minha solução foi implementar uma classe própria que fazia a conversão automática. Isso resolve na maioria dos casos de uso cotidiano, mas não é adequado para cálculos teóricos avançados. Recomendo consultar literatura especializada se for além do nível prático.