Wikipedia:Lua/Modul/FormatNum

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Vorlagenprogrammierung Diskussionen Lua Test Unterseiten
Modul Deutsch English

Modul: Dokumentation

FormatNum – zum Runden und Formatieren von Zahlen. Es stehen verschiedene Rundungs- und Formatierungsvarianten zur Verfügung.

Funktionen für Vorlagen

format

Diese Funktion formatiert eine Zahl entsprechend dem angegebenen Format. Zur Eingabe sind alle Zahlen geeignet, die als Dezimaltrennzeichen den Punkt verwenden, keine Tausendertrennzeichen haben und nicht in Exponentialschreibweise vorliegen sowie nur ASCII-Zeichen enthalten. Siehe #Zahlenformate.

Parameter

1
Bisher unformatierte (aber ggf. gerundete) Gleitkomma- oder Ganzzahl.
Pflichtparameter.
2
Eines der zur Verfügung stehenden Zahlenformate. Momentan sind das at, ch, ch_currency, comma, de, dewiki, de_currency, en, iso31_0, iso31_0_point. Außerdem kann mit NOSEP die Formatierung unterbunden werden. pc sollte mit Bedacht eingesetzt werden.
Optional, Rückfallwert: dewiki.

Rückgabewert

Formatierte Zahl. Sollte ein ungültiges Argument für 2 angegeben werden oder es sich bei 1 nicht um eine gültige Zahl handeln, so wird 1 unverändert zurückgegeben.

minus

Ein vorhandenes Unicode-Minuszeichen U+2212 = 872210 wird durch einen ASCII-Bindestrich U+002D ersetzt; oder umgekehrt.

Parameter

1
Zahl.
Pflichtparameter.
2
Umwandlung in U+002D .
Optional; Vorgabe: 0 = →ASCII (boolesch)

Rückgabewert

Zahl mit ASCII-Bindestrich statt Minuszeichen; oder umgekehrt.

padding

Links- oder rechtsbündiges Auffüllen mit nicht-kopierbarem Weißraum. Die Zahl wird links oder rechts bis zum Dezimaltrennzeichen so aufgefüllt, dass alle Zahlen untereinander das Dezimaltrennzeichen an der gleichen Position haben, falls die Ausdehnung des Weißraums geeignet gewählt wurde.

Parameter

1
Zahl.
Pflichtparameter.
2
Ausdehnung des Weißraums. Zahlen größer Null geben die erwarteten Nachkommastellen an. Sind weniger signifikante Stellen vorhanden, wird rechts mit entsprechend breitem Weißraum aufgefüllt. Bei einer Ausdehnung kleiner Null werden Zahlen, die weniger Zeichen vor dem Dezimaltrennzeichen haben, links mit Weißraum aufgefüllt; die Angabe muss also betragsmäßig zur größten erwarteten Zahl passen.
Pflichtparameter.
3
Dezimaltrennzeichen.
Pflichtparameter.

Rückgabewert

Ggf. adjustierte Zahl.

roman2number

Römische Zahl in numerische Ganzzahl wandeln.

Parameter

1
Römische Zahl.
Pflichtparameter.
2
Lua-pattern für erlaubten Suffix.
Typischerweise etwas wie %.$ – fordert einen Ordinalpunkt nach der römischen Zahl; oder %.?$ (optional).

Rückgabewert

Positive Ganzzahl, wenn erfolgreich.
leer, wenn nicht interpretierbar.

round

Diese Funktion wird zum Runden von Zahlen verwendet. Die Ausgabe ist eine Zeichenkette mit der entsprechenden Anzahl signifikanter Stellen. Zur Eingabe sind alle Zahlen geeignet, die sich mit der Lua-Methode tonumber() parsen lassen.

Parameter

1
Zu rundende Gleitkomma- oder Ganzzahl. Die Zahl muss im PC-lesbaren Format (Punkt als Dezimaltrennzeichen, keine Tausendertrennzeichen, ASCII-Minuszeichen) angegeben sein.
Pflichtparameter.
2
Ganze Zahl, die die Anzahl signifikanter Stellen angibt. Ist diese Zahl nicht-negativ, so handelt es sich um die Nachkommastellen. Sollte diese Zahl negativ sein, so wird der ganzzahlige Anteil der Zahl ebenfalls gerundet (-1 entspricht Rundung auf volle Zehner, -2 auf volle Hunderter, …).
Pflichtparameter.
method
Zahl, welche die zu verwendende Rundungsmethode beschreibt.
  • 0 – Rundung nach IEEE 754 (round half to even).
  • 1 – Kaufmännisches Runden inklusive Eliminierung von "-0"-Ergebnissen.
Optional; Vorgabe: 0
format
Formatierung mittels format integriert auslösen.
Der Wert ist die Formatierungsmethode.
Die Zuweisung eines leeren Werts verwendet die Standardmethode (dewiki).
padding
Formatierung mittels format und padding integriert auslösen.
Der Wert ist die Ausdehnung des Weißraums. Die Formatierungsmethode ist die Standardmethode, falls nicht mit format= spezifiziert. Das Dezimaltrennzeichen ergibt sich aus der Formatierungsmethode.
Optional

Rückgabewert

Zeichenkette der entsprechend der Rundungsmethode auf die vorgegebene Anzahl signifikanter Stellen gerundeten Zahl (zunächst PC-kompatible Schreibweise ohne Formatierung). Diese kann mit der Funktion format weiter formatiert werden, oder das durch die Parameter format= bzw. padding= ausgelöst werden.
Sollte sich eines der übergebenen Argumente nicht parsen lassen, so wird der String des Arguments 1 unverändert zurückgegeben.
War der Eingabewert eine Gleitkommazahl (mit Dezimalpunkt), so ist das Ergebnis eine Gleitkommazahl mit Dezimalpunkt, war die Eingabe eine ganze Zahl, dann soll das Ergebnis auch eine ganze Zahl sein. Trägt die Anzahl signifikanter Stellen ein Minuszeichen (einschließlich -0), so ist das Ergebnis immer eine ganze Zahl.

failsafe

Diese Funktion gibt die Versionsbezeichnung des Moduls aus.

Die Failsafe-Schnittstelle erlaubt den damit ausgerüsteten Modulen in globaler Verteilung

  • sicherzustellen, dass eine von einer Vorlage oder einem Modul benötigte Funktion in der lokalen Kopie eines Bibliotheksmoduls vorhanden ist, und ggf. auch in einer erforderlichen Mindestversion;
  • die globale Aktualisierung und Verknüpfung von Modulen über Wikidata zu verwalten.

Die Failsafe-Schnittstelle liegt sowohl auf Ebene der Vorlagen wie auch in direktem Lua-Zugriff vor.

Die Funktionen sind im Einzelnen (nicht alle werden bereits überall in vollem Umfang unterstützt):

Parameter
Wert Ergebnis aktuell
nichts
false
lokale Version »2020-08-06«
Mindest­version Mindestversionsbezeichnung
Datum im ISO-Format

Es wird verglichen, ob das aktuelle Modul diese Version oder später erfüllt.

  • leer, falls Mindestversion nicht erfüllt
  • 2001-01-01 → »2020-08-06«
  • 2099-01-01 → »«
wikidata Versionsbezeichnung der globalen Mutter
  • Versionsbezeichnung auf Wikidata
  • lokal, falls dort keine gefunden
»2020-08-06«
~ Übereinstimmung der lokalen mit der auf Wikidata registrierten Versionsbezeichnung
  • leer, falls aktuell
  • Versionsbezeichnung auf Wikidata, falls ungleich
»«
@ Ist die aktuelle (Modul-)Seite richtig mit Wikidata verknüpft?
  • leer, falls mit dem richtigen Item verknüpft
  • Item-ID, falls nicht
Der Rückgabewert ist in der Vorlagenprogrammierung leer und per Lua false; andernfalls die angegebene Zeichenkette.

Zahlenformate

Format/
Stichwort
Dezimal-trennzeichen Zifferngruppierung mit Tausender-trennzeichen Beispiele
-trennzeichen -trennzeichen ab Länge nur Ganzzahlteil
dewiki
(oder leer)
Komma
,
Punkt
.
4 nein 1.234,56
1.234,567
12.345,678
1.234,567.8
12.345,567.8
123.456,78
-1.234,56
-1.234,567
-12.345,678
-1.234,567.8
-12.345,567.8
-123.456,78
de Komma
,
Schmales
nicht umbr.
Leerzeichen
4 nein 1 234,56
1 234,567
12 345,678
1 234,567 8
12 345,567 8
123 456,78
-1 234,56
-1 234,567
-12 345,678
-1 234,567 8
-12 345,567 8
-123 456,78
at
iso31_0
de_currency Komma
,
Punkt
.
4 ja 1.234,56
1.234,567
12.345,678
1.234,5678
12.345,5678
123.456,78
-1.234,56
-1.234,567
-12.345,678
-1.234,5678
-12.345,5678
-123.456,78
ch Komma
,
gerades
Hochkomma
'
5 ja 1234,56
1234,567
12'345,678
1234,5678
12'345,5678
123'456,78
-1234,56
-1234,567
-12'345,678
-1234,5678
-12'345,5678
-123'456,78
ch_currency Punkt
.
gerades
Hochkomma
'
5 ja 1234.56
1234.567
12'345.678
1234.5678
12'345.5678
123'456.78
-1234.56
-1234.567
-12'345.678
-1234.5678
-12'345.5678
-123'456.78
iso31_0_point Punkt
.
Schmales
nicht umbr.
Leerzeichen
4 nein 1 234.56
1 234.567
12 345.678
1 234.567 8
12 345.567 8
123 456.78
-1 234.56
-1 234.567
-12 345.678
-1 234.567 8
-12 345.567 8
-123 456.78
en Punkt
.
Komma
,
4 ja 1,234.56
1,234.567
12,345.678
1,234.5678
12,345.5678
123,456.78
-1,234.56
-1,234.567
-12,345.678
-1,234.5678
-12,345.5678
-123,456.78
NOSEP
oder pc
Punkt
.
(kein Wert) (kein Wert) (kein Wert) 1234.56
1234.567
12345.678
1234.5678
12345.5678
123456.78
-1234.56
-1234.567
-12345.678
-1234.5678
-12345.5678
-123456.78
comma Komma
,
(leer) 1000 ja 1234,56
1234,567
12345,678
1234,5678
12345,5678
123456,78
-1234,56
-1234,567
-12345,678
-1234,5678
-12345,5678
-123456,78


Allgemeine Hinweise zur Einbindung von Modulen

Eine Einbindung erfolgt jeweils im Format

{{#invoke: FormatNum | Funktionsname | Wert1 | Wert2 | NameX=Wert … }}

Die Parameter können wie bei Vorlagen benannt oder unbenannt sein; deren Regeln gelten analog.

Wenn unbekannte Zeichenketten von außen kommen (als Vorlagenparameter), sollte immer mit der Form 1=Wert gearbeitet werden.

Zu allgemeinen Problemen beachte die Abhilfen wie bei Vorlagen.

Wenn in einer Vorlage ein Modul verwendet wird, sollte auch immer die Vorlage:Dokumentation/Lua in der Dokumentationsseite eingebunden werden.

  1. Das gibt einem Programmierer Aufschluss, dass ein Lua-Modul benutzt wird, welche/s und ggf. welche Einzelfunktion daraus, und verlinkt auf die Dokumentation.
  2. Die Modul-Dokumentationen bekommen ein Link, in welchen Vorlagen sie eingesetzt werden, und wo bei eventuellen Funktionsänderungen Anpassungen erforderlich werden.
  3. Die Vorlage wird zur Übersicht kategorisiert in Kategorie:Vorlage:mit Lua-Programmierung.

Zu weiteren Informationen siehe Hilfe:Lua.

Bei Problemen wende dich bitte an die Vorlagen-Werkstatt, in schweren Fällen hilft auch die Lua-Werkstatt.