



Esta função é capaz de converter inteiros em String co o número em romano.
Segue o código fonte da função:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function DecToRoman(Decimal: Cardinal): string; const Numbers: array [1 .. 13] of Integer = (1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000); Romans: array [1 .. 13] of string = ('I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM', 'M'); var i: Integer; begin Result := ''; for i := 13 downto 1 do while (Decimal >= Numbers[i]) do begin Decimal := Decimal - Numbers[i]; Result := Result + Romans[i]; end; end; |
Exemplo de uso:
1 2 3 4 5 | procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(DecToRoman(8)); ShowMessage(DecToRoman(736)); end; |
Dúvidas ou sugestões deixe nos comentários do post.