Kontakt
DSVGO
Die von den antiken Römern genutzte Darstellung ganzer Zahlen war weder leicht lesbar noch besonders praktisch (insbesondere wegen der fehlenden Null). Trotzdem begegnet man dieser Darstellungsart auch heute noch immer wieder.
Die Umrechnung ist nicht trivial, da z.B. die Römischen Zahlen von 5 bis 8 stetig wachsen, um dann plötzlich mit 9 und 10 wieder zu "schrumpfen": V, VI, VII, VIII, IX, X.
Falls man nun diesen "historischen Touch" für seine Anwendung (oder Kunden ) benötigt, kann zur unten gezeigten CRoman-Funktion gegriffen werden.
MsgBox CRoman(9) 'ergibt "IX" MsgBox CRoman(27) 'ergibt "XXVII" MsgBox CRoman(29) 'ergibt "XXIX" MsgBox CRoman(2001) 'ergibt "MMI"
Beim ersten Start der Funktion werden die "Übersetzungstabellen" angelegt. Mit deren Hilfe ist es dann ein leichtes, die eigentlich unsymetrische römische Darstellung zu generieren:
Public Static Function CRoman( _ ByVal Number As Integer _ ) As String 'Deklarationen (statisch!): Dim r As Variant Dim n As Variant Dim i As Long 'Felder nur einmal füllen: If IsEmpty(r) Then r = Array("M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I") n = Array(1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1) End If 'Von I (1) bis M (1000) durchlaufen: For i = LBound(r) To UBound(r) Do Until n(i) > Number CRoman = CRoman & r(i) Number = Number - n(i) Loop Next i End Function
© Jost Schwider, 27.08.2001-27.08.2001 - http://vb-tec.de/croman.htm