Umrechner für römische Zahlen
Wechseln Sie zwischen gewöhnlichen und römischen Zahlen in beide Richtungen: 2026 wird zu MMXXVI, und MMXXVI wird wieder als 2026 gelesen. Ungültige Schreibweisen werden abgelehnt statt erraten, damit Jahreszahlen und Gliederungen stimmen. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Wert
- 1
- Berechnungsmodus
- To roman
- Ergebnis
- I
- Eingabewert
- 1
kostenlos in Ihrem Browser
Sieben Buchstaben und sechs subtraktive Paare
Römische Zahlen verwenden sieben Buchstaben: I steht für 1, V für 5, X für 10, L für 50, C für 100, D für 500 und M für 1000. Sechs Paare stellen einen kleineren Buchstaben vor einen größeren, um ihn abzuziehen: IV ist 4, IX ist 9, XL ist 40, XC ist 90, CD ist 400 und CM ist 900. Um eine Zahl zu schreiben, nimmt der Umrechner den größten dieser dreizehn Werte, der noch passt, schreibt sein Zeichen, zieht ihn ab und wiederholt das, bis nichts übrig bleibt. So wird 2026 zu MMXXVI, und deshalb ist das Ergebnis immer die kürzeste Standardform.
Wo römische Zahlen noch vorkommen
Sie nennen Erscheinungs- und Filmjahre im Abspann, auf Tafeln und auf Titelseiten, und sie nummerieren Abschnitte und Klauseln als I, II, III in Gliederungen und Verträgen. Sie in gewöhnliche Zahlen zurückzulesen, hilft beim Sortieren alter Verweise. Für null gibt es kein Zeichen, und der größte Wert, den die klassischen Symbole schreiben können, ist 3999, MMMCMXCIX. Beim Lesen wird jede Schreibweise außerhalb der Standardform, etwa IIII oder IC, abgelehnt statt erraten, damit aus einem Tippfehler nie unbemerkt eine falsche Zahl wird.
Eingabeverarbeitung und der Bereich 1..3999
Es gibt keine Null und kein Zahlzeichen dafür, und 3999 (MMMCMXCIX) ist der größte mit den klassischen Symbolen ausdrückbare Wert. Die Antwort gibt die normalisierte Eingabezeichenkette und das umgerechnete Ergebnis wieder.
Anwendungsfälle
Copyright- und Ausgabejahre
Stellen Sie Erscheinungs- oder Filmjahre als römische Zahlen dar (z. B. 2026 zu MMXXVI) für Abspänne, Bildtafeln und Titelseiten.
Gliederungs- und Klauselnummerierung
Erzeugen Sie Abschnittsmarkierungen im Stil I, II, III oder lesen Sie ältere römisch nummerierte Verweise zum Sortieren zurück in Ganzzahlen ein.
Häufige Fragen
Welcher Zahlenbereich wird unterstützt?
Ganzzahlen 1 bis 3999 einschließlich. Es gibt kein Zahlzeichen für die Null, und 3999 (MMMCMXCIX) ist der größte klassische Wert.
Warum schreibt man 4 als IV und nicht als IIII?
Weil der Umrechner immer die kürzeste Standardform schreibt, mit subtraktiven Paaren, bei denen ein kleinerer Buchstabe vor einem größeren abgezogen wird. So entstehen IV für 4, IX für 9, XL für 40 und CM für 900.
Gibt es eine römische Zahl für null?
Nein. Römische Zahlen haben kein Zeichen für null, daher ist der kleinste umrechenbare Wert 1. Null, negative Zahlen und Brüche liegen außerhalb des Bereichs und werden abgelehnt.
Kann ich römische Zahlen kleingeschrieben eingeben?
Ja. Der Text wird vor dem Lesen in Großbuchstaben umgewandelt, sodass mmxxvi und MMXXVI dasselbe Ergebnis liefern. Entscheidend ist die Schreibweise: Eine Form außerhalb des Standards, etwa IIII, wird abgelehnt.
Wie wird eine römische Zahl zurückgelesen?
Von links nach rechts: Zuerst wird ein subtraktives Paar aus zwei Buchstaben wie CM oder IX erkannt, sonst ein einzelner Buchstabe, und die Werte werden addiert. Das hilft Ihnen, alte Verweise mit I, II, III zu sortieren.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev/roman \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"to_roman","value":"2026"}'const res = await fetch("https://api.kit.forhosting.com/dev/roman", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mode": "to_roman",
"value": "2026"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/roman",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mode": "to_roman",
"value": "2026"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/roman", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mode":"to_roman","value":"2026"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mode":"to_roman","value":"2026"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/roman", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"mode": "to_roman",
"value": "2026"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.roman",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
min | 1 |
max | 3999 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Wandelt zwischen arabischen Ganzzahlen (1 bis 3999) und römischen Zahlen in zwei Richtungen um. mode=to_roman verwandelt eine Zahl in ihre römische Zeichenkette; mode=to_arabic liest eine römische Zeichenkette zurück in eine Zahl ein und lehnt jede nicht kanonische Schreibweise ab.
Gierige subtraktive Umrechnung
Beide Richtungen verwenden eine geordnete Werttabelle aus dreizehn Symbolpaaren: M=1000, CM=900, D=500, CD=400, C=100, XC=90, L=50, XL=40, X=10, IX=9, V=5, IV=4, I=1. mode=to_roman durchläuft diese Tabelle vom größten zum kleinsten Wert, hängt jedes Symbol an, solange der verbleibende Wert mindestens seinem Gewicht entspricht, und subtrahiert dabei, sodass 2026 zu MMXXVI und 4 zu IV wird statt zu IIII. mode=to_arabic durchsucht die Zeichenkette von links nach rechts, wobei es ein subtraktives Paar aus zwei Zeichen (wie CM oder IX) abgleicht, bevor es auf ein einzelnes Symbol zurückfällt, und die Gewichte summiert. Dieses gierige Schema ist der Grund, warum die Ausgabe stets die standardmäßige kürzeste Form mit korrekter subtraktiver Notation statt additiver Wiederholung ist.
Eingabeverarbeitung und der Bereich 1..3999
Das Feld value ist als Zeichenkette dokumentiert, doch to_roman akzeptiert auch eine schlichte Ganzzahl oder eine reine Ziffernzeichenkette, die es mit Number umwandelt, bevor es prüft, dass es eine Ganzzahl innerhalb von 1..3999 ist; alles außerhalb dieses einschließenden Bereichs wirft invalid_input. Für to_arabic muss value eine Zeichenkette sein; sie wird zuerst in Großbuchstaben umgewandelt, sodass gemischte oder Kleinschreibung wie "mmxxvi" akzeptiert wird, und dann so gefiltert, dass nur die Buchstaben M, D, C, L, X, V und I auftreten dürfen.
Strenge kanonische Validierung beim Einlesen
to_arabic tut mehr, als Symbole zu summieren: nach dem Einlesen codiert es die Zahl mit to_roman neu und verlangt, dass das Ergebnis exakt der in Großbuchstaben umgewandelten Eingabe entspricht, und es bestätigt zudem, dass der eingelesene Wert in 1..3999 landet. Diese Hin-und-Rück-Prüfung lehnt fehlerhafte, aber summierbare Zeichenketten wie IIII, VV oder IC ab, die naive Parser stillschweigend akzeptieren würden, weil nur die eine kanonische Schreibweise die Neucodierung übersteht. Jedes fremde Zeichen, eine leere Zeichenkette oder ein Wert außerhalb des Bereichs löst einen typisierten invalid_input-Fehler aus statt eines untypisierten Absturzes.
Integrationsbeispiele
Validieren nutzereingegebener Zahlzeichen
Nutzen Sie to_arabic, um eine römische Zeichenkette nur zu akzeptieren, wenn sie in strenger kanonischer Form geschrieben ist, und lehnen Sie IIII oder IC ab.
Technische Fragen
Akzeptiert es römische Eingaben in Kleinschreibung?
Ja. to_arabic wandelt die Zeichenkette zuerst in Großbuchstaben um, sodass "mmxxvi" genauso behandelt wird wie "MMXXVI".
Akzeptiert es IIII oder IC?
Nein. Nach dem Einlesen codiert es die Zahl neu und verlangt eine exakte Übereinstimmung, sodass nur die eine kanonische Schreibweise gültig ist; nicht standardgemäße Formen lösen invalid_input aus.
Kann ich die Zahl als Zeichenkette übergeben?
Für to_roman ja: eine reine Ziffernzeichenkette wie "1990" wird in eine Zahl umgewandelt. to_arabic erwartet eine Zeichenkette aus römischen Buchstaben.
Ist es kostenlos und was kostet die API?
Das Browser-Widget ist kostenlos; die API nutzt vorausbezahltes KIT-Guthaben ab $0.002, wobei fehlgeschlagene Aufgaben nicht berechnet werden.