JavaScriptsVerschiedenes

Trinkgeld-Rechner

Rechnet Trinkgeld und Gesamtbetrag aus, teilt durch die Anzahl der Personen und rundet auf Wunsch auf einen glatten Betrag auf.

Die Rechnung kommt, und am Tisch beginnt das Rechnen: Wie viel Trinkgeld ist angemessen, was macht das zusammen, und wie viel zahlt jeder? Dieses Script erledigt alle drei Fragen auf einmal.

In Deutschland sind fünf bis zehn Prozent üblich, meist wird auf einen glatten Betrag aufgerundet — aus 43,20 € werden 47 oder 48 €. Genau dafür gibt es den Schalter „aufrunden": Er sucht den nächsten glatten Betrag oberhalb des berechneten Gesamtbetrags und zeigt, welchem Prozentsatz das dann tatsächlich entspricht. Meist ist es ein etwas anderer als der eingestellte, und genau so rechnet man in Wirklichkeit ja auch.

Beim Teilen durch mehrere Personen kommt ein Detail hinzu, das im Wirtshaus regelmäßig für Verwirrung sorgt: Der Betrag je Person geht selten glatt auf. Das Script rundet deshalb den Betrag je Person auf volle zehn Cent auf und zeigt darunter, wie viel dadurch zusammenkommt — üblicherweise etwas mehr als die Rechnung, was der Bedienung zugutekommt.

Verwandtes im Archiv: Prozentrechnung für die allgemeine Rechnung, Mehrwertsteuer-Rechner für die andere Seite der Rechnung und Einfacher Euro-Rechner für Beträge in alten Währungen.

Verschiedenes Baujahr 2026 läuft in deinem Browser
Script von kostenlose-javascripts.de

So funktioniert das Script

Prozentrechnung ist die eine Hälfte, Rundung in die richtige Richtung die andere. Gerade beim Runden entscheidet die Wahl der Funktion darüber, ob das Ergebnis im Wirtshaus taugt.

const trinkgeld = betrag * prozent / 100;

Die Grundrechnung: Ein Prozent ist ein Hundertstel, also wird mit dem Prozentsatz multipliziert und durch 100 geteilt. Bei 43,20 € und 10 Prozent ergibt das 4,32 € Trinkgeld und 47,52 € Gesamtbetrag.

const gerundet = Math.ceil(gesamt / stufe) * stufe;

Das ist die Aufrundung auf eine beliebige Stufe, und sie folgt immer demselben Dreisprung: durch die Stufe teilen, aufrunden, wieder mit der Stufe malnehmen. Bei 47,52 € und der Stufe 1 ergibt das Math.ceil(47,52) = 48, also 48 €. Bei der Stufe 5 wären es Math.ceil(9,504) = 10, mal 5 also 50 €.

Entscheidend ist Math.ceil und nicht Math.round: Beim Trinkgeld wird nach oben gerundet, nie nach unten. Math.round machte aus 47,52 € ebenfalls 48 €, aus 47,20 € aber 47 € — und damit weniger Trinkgeld als eingestellt, was niemand will.

const neuerSatz = neuesTrinkgeld / betrag * 100;

Nach dem Aufrunden wird zurückgerechnet, welchem Prozentsatz der glatte Betrag entspricht. Das ist die Umkehrung der ersten Formel und beantwortet die eigentlich interessante Frage: „Ich lasse 48 € da — wie großzügig ist das?" Bei 43,20 € sind es 11,1 Prozent.

const proKopfGerundet = Math.ceil(proKopf * 10) / 10;

Derselbe Dreisprung, nur mit der Stufe 0,1: mal zehn, aufrunden, durch zehn. So entstehen glatte Zehn-Cent-Beträge. Der Umweg über die Multiplikation ist nötig, weil Math.ceil immer auf ganze Zahlen rundet — für alles andere muss man den Wert vorher entsprechend skalieren.

if (summe > gesamt + 0.005) { … }

Warum der Zuschlag von 0,005 statt eines schlichten >? Weil Computer mit Kommazahlen nicht exakt rechnen: 0.1 + 0.2 ergibt in JavaScript 0.30000000000000004. Ein direkter Vergleich meldete deshalb manchmal eine Differenz von einem Zehntausendstel Cent, die es gar nicht gibt. Der kleine Schwellenwert — ein halber Cent — fängt das ab. Bei Geldbeträgen ist das eine Standardvorsichtsmaßnahme; wer es ganz genau braucht, rechnet durchgehend in Cent als ganzen Zahlen.

betrag.toLocaleString("de-DE", {
  minimumFractionDigits: 2, maximumFractionDigits: 2
}) + " €"

Die Ausgabe übernimmt der Browser: Komma statt Punkt, Tausenderpunkte, immer zwei Nachkommastellen. minimumFractionDigits ist dabei der wichtigere Teil — ohne ihn erschiene aus 47,50 € ein „47,5 €", was bei Geldbeträgen falsch aussieht.

Zum Anpassen: In Ländern mit anderer Trinkgeldkultur ändert ihr die Vorgabe im Prozentfeld — in den USA sind 15 bis 20 Prozent üblich, in Japan gilt Trinkgeld als unhöflich. Wollt ihr, dass jeder nur seinen eigenen Verzehr plus anteiliges Trinkgeld zahlt, braucht ihr ein Feld je Person; die Rechnung bleibt dieselbe, nur der Grundbetrag wird ein anderer.

Script für die eigene Homepage

Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.

Mehr aus der Kategorie Verschiedenes