Como escrever números romanos sem perder a cabeça
Achei que isso fosse básico demais pra precisar de explicação quando comecei a lidar com isso, mas a prática é diferente da teoria. Os números romanos de 1 a 200 têm uma lógica simples no papel, mas na hora de usar eles de verdade — tipo em datas, capítulos de livros, ou num sistema legado que ainda não migraram pra notação decimal — aparecem os detalhes chatos que ninguém ensina. O sistema usa sete letras: I, V, X, L, C, D e M. Cada uma vale 1, 5, 10, 50, 100, 500 e 1000. Para formar os números, você combina essas letras seguindo regras de adição e subtração. Quando um símbolo menor vem antes de um maior, subtrai. Depois, some.
números romanos de 1 a 200
Vou listar os mais importantes, os que realmente aparecem no dia a dia. I = 1, II = 2, III = 3, IV = 4, V = 5, VI = 6, VII = 7, VIII = 8, IX = 9, X = 10
XI = 11, XII = 12, XIII = 13, XIV = 14, XV = 15, XVI = 16, XVII = 17, XVIII = 18, XIX = 19, XX = 20 XXI = 21, XXII = 22, XXIII = 23, XXIV = 24, XXV = 25, XXVI = 26, XXVII = 27, XXVIII = 28, XXIX = 29, XXX = 30
XXXI = 31, XXXII = 32, XXXIII = 33, XXXIV = 34, XXXV = 35, XXXVI = 36, XXXVII = 37, XXXVIII = 38, XXXIX = 39, XL = 40 XLI = 41, XLII = 42, XLIII = 43, XLIV = 44, XLV = 45, XLVI = 46, XLVII = 47, XLVIII = 48, XLIX = 49, L = 50
👉 Clique no botão abaixo para saber mais sobre o assunto!
LVI = 56, LX = 60, LXV = 65, LXX = 70, LXXX = 80, XC = 90, XCIX = 99, C = 100 CXXV = 125, CXL = 140, CL = 150, CLX = 160, CLXX = 170, CLXXX = 180, CXC = 190, CXCIX = 199, CC = 200
A regra prática que funciona
Se precisa converter um número qualquer, decompõe ele por partes. 198 vira 100 mais 90 mais 8. 100 é C, 90 é XC (100 menos 10), 8 é VIII. Resultado: CXCVIII. A mesma lógica serve pros outros números. Os casos que mais causam erro são os 4 e o 9 de cada dezena. IV, IX, XL, XC, CD, CM. Quase todo mundo erra aí na primeira vez. Eu já vi gente escrevendo IIII no lugar de IV em relógios e placas, o que tecnicamente não é errado porque os romanos originais usavam essa forma, mas em contextos modernos e acadêmicos o padrão Accepted é IV.
Problema real que encontrei
Certa vez precisei padronizar centenas de referências bibliográficas que vinham com números romanos manualmente digitados. O sistema do client aceitava apenas notação decimal. Tive que criar um script rápido em Python pra converter de volta. O problema foi que o regex que eu tinhamos usado falhava com números como 44 (XLIV) porque o padrão inicial não considerava a subtração encadeada corretamente. A solução foi usar uma função recursiva que valida a sequência caractere por caractere, verificando se cada par está na ordem permitida de subtração. Levei uns dois dias pra ajustar, mas depois de pronto, processou 300 entradas em menos de 2 minutos.
Insights que ninguém conta
Uma coisa que pouca gente sabe: o número 200 nunca precisou de um símbolo novo. Sempre foi CC, e isso vale pros múltiplos de cem abaixo de 1000. Também existe uma convenção pouco mencionada sobre não repetir o mesmo símbolo mais de três vezes seguidas — V, L e D nunca aparecem duplicados. Isso evita ambiguidade, mas gera os casos chatos como 19 que é XIX, não IXX. Já vi planilhas inteiras com IXX por causa de scripts mal escritos.
Limitações desse sistema
O sistema romano não tem zero. Não tem frações. Não serve pra cálculo. Se você precisa fazer operações matemáticas com ele, abandona a ideia e usa decimal. Também fica inviável pra números acima de 3999, a não ser que adote a barra horizontal que indica multiplicação por mil, e aí a coisa fica confusa pra quem não tá habituado. Para o intervalo de 1 a 200, ele funciona bem, mas a partir de 201 a complexidade cresce sem necessidade prática. Se o seu objetivo é só consultar ou listar, pode usar uma tabela pronta. Se precisa gerar dinamicamente, prefere uma função de biblioteca. Nunca escreva do zero num projeto sério sem testar os casos de borda primeiro.