...convert a decimal number to roman numerals?

Author: Thomas Stutz

Category: Math

function DecToRoman(Decimal: Longint): 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 do
    while 
(Decimal >= Numbers[i]) do
    begin
      
Decimal := Decimal - Numbers[i];
      Result  := Result + Romans[i];
    end;
end;


//Example:
//Beispiel:

procedure TForm1.Button1Click(Sender: TObject);
begin
  
label1.Caption := DecToRoman(5);
  Label2.Caption := DecToRoman(458);
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base