[Openroad-users] Convert numbers to Roman
Hervé de Gabai
hdgcontact-2007 at yahoo.co.uk
Tue Jul 8 16:37:39 EST 2008
Good Morning all,
Thank you Bodo for the int2roman procedure which might prove useful.
Do you also have an OpenRoad Procedure to convert roman to integer?
Regards
Hervé de Gabai
Applications Systems Division
International Telecommunications Union
----- Original Message ----
From: Bodo Bergmann <Bodo.Bergmann at ingres.com>
To: International OpenROAD Users <openroad-users at peerlessit.com>
Sent: Wednesday, 2 July, 2008 1:51:15 PM
Subject: Re: [Openroad-users] Convert numbers to Roman
Have you tried something like this (modiefied from some VB example I found - should work for numbers<4000):
PROCEDURE int2roman(iNumber=INTEGER NOT NULL)=
DECLARE
sNumeral=VARCHAR(4) NOT NULL;
ENDDECLARE
{
WHILE (iNumber > 0) DO
IF iNumber >= 1000 THEN
sNumeral = sNumeral + 'M';
iNumber = iNumber - 1000;
ELSEIF iNumber >= 900 THEN
sNumeral = sNumeral + 'CM';
iNumber = iNumber - 900;
ELSEIF iNumber >= 500 THEN
sNumeral = sNumeral + 'D';
iNumber = iNumber - 500;
ELSEIF iNumber >= 400 THEN
sNumeral = sNumeral + 'CD';
iNumber = iNumber - 400;
ELSEIF iNumber >= 100 THEN
sNumeral = sNumeral + 'C';
iNumber = iNumber - 100;
ELSEIF iNumber >= 90 THEN
sNumeral = sNumeral + 'XC';
iNumber = iNumber - 90;
ELSEIF iNumber >= 50 THEN
sNumeral = sNumeral + 'L';
iNumber = iNumber - 50;
ELSEIF iNumber >= 40 THEN
sNumeral = sNumeral + 'XL';
iNumber = iNumber - 40;
ELSEIF iNumber >= 10 THEN
sNumeral = sNumeral + 'X';
iNumber = iNumber - 10;
ELSEIF iNumber = 9 THEN
sNumeral = sNumeral + 'IX';
iNumber = 0;
ELSEIF iNumber >= 5 THEN
sNumeral = sNumeral + 'V';
iNumber = iNumber - 5;
ELSEIF iNumber = 4 THEN
sNumeral = sNumeral + 'IV';
iNumber = 0;
Else
sNumeral = sNumeral + 'I';
iNumber = iNumber - 1;
ENDIF;
ENDWHILE;
RETURN sNumeral;
}
You can of course apply lowercase() to the return value if required.
Bodo.
Bodo Bergmann| Sr. Software Engineer | Bodo.Bergmann at ingres.com| Ingres Germany GmbH | Ohmstr. 12 | 63225 Langen | GERMANY | +49 6103 9881 0
__________________________________________________________
Not happy with your email address?.
Get the one you really want - millions of new email addresses available now at Yahoo! http://uk.docs.yahoo.com/ymail/new.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.peerlessit.com/pipermail/openroad-users/attachments/20080708/464845d9/attachment.html
More information about the Openroad-users
mailing list