Ein interessantes und sehr nützliches Feature der Number_Words-Klasse ist deren Fähigkeit, die lokalen Äquivalente sowohl für Zahlen als auch für Währungen auszugeben. Dies wird durch ein zusätzliches, optionales Argument beim Aufruf von toWords() und toCurrency() erreicht. Hier zum Beispiel der Code, um „drei Millionen“ auf Französisch zu schreiben:
Die Ausgabe hiervon ist:
„3000000 in words is trois millions“
Dies funktioniert auch mit Währungen:
Dies ist schon etwas komplizierter. Das erste Argument für toCurrency() ist die zu konvertierende Zahl (man beachte, dass hier auch Dezimalbrüche funktionieren), gefolgt von dem Locale, für das der String angezeigt werden soll (hier US), und der zu verwendenden Währungseinheit (hier Schweizer Franken, CHF).
Hier das Ergebnis:
„3000000.50 in words is three million Swiss francs fifty rapps“
Locale-spezifische Daten für eine ganze Anzahl von Ländern sind bereits in der Klasse enthalten. Falls das eigene Land in der Liste fehlt, kann man problemlos für individuelle Zwecke eine Locale-Datei erstellen. Dazu kopiert man einfach eine der vorhandenen Sprach-Dateien und bearbeitet sie so, dass sie lokale Äquivalente benutzt. Und man sollte nicht versäumen, eine Kopie an den Autor der Klasse zu schicken, so dass die Datei der nächsten Distribution beigefügt werden kann.
Ein Beispiel aus dem wirklichen Leben
Nun kann man alles soeben Gelernte in einem echten Script anwenden. Man stelle sich dazu den folgenden Fall vor: Benötigt wird ein Script zur Anzeige einer ausdruckbaren Zusammenstellung aller Artikel, die einem bestimmten Kunden im Laufe des Monats verkauft wurden. Die Liste der verkauften Artikel ist in einer MySQL-Datenbank gespeichert, indiziert nach Datum und Kundennummer. Dazu genügt es, alle Informationen aus der Datenbank abzurufen, sie hübsch zu formatieren, die Zahlen zu addieren und die Gesamtsumme in Ziffern und Wörtern anzuzeigen. Listing A enthält den entsprechenden Code.
Man beachte hier die Verwendung der Numbers_Words-Klasse. Nach Addition aller Einkäufe und dem Abzug bereits getätigter Zahlungen von dieser Summe bildet der Rest den vom Kunden noch zu zahlenden Betrag. Diese Summe wird sowohl in Ziffern als auch in Wörtern ausgegeben, wobei die beschriebene toCurrency()-Methode zum Einsatz kommt. Hier ein Beispiel für eine Ausgabe, wie sie das Script in Listing A erzeugt.
Dieser Code ist hoffentlich für den einen oder anderen Leser nützlich, der beim nächsten Mal, wenn er eine Anwendung zur Rechnungsstellung schreibt, auf die Numbers_Words-Klasse zurückgreifen kann.
Sein Anteil an allen Infektionen steigt in Deutschland auf 18,5 Prozent. Das Botnet Androxgh0st integriert…
Betroffen sind Chrome 131 und früher für Windows, macOS und Linux. Angreifer können unter Umständen…
Marktforscher Lündendonk erwartet für das Jahr 2025 ein durchschnittliches Umsatzwachstum von 14,9 Prozent.
Alarmierender Anstieg von Open-Source-Malware / Seit 2019 haben Sonatype-Analysen mehr als 778.500 bösartige Pakete aufgedeckt
Das KI-Werkzeug "BAIOSPHERE KI-KOMPASS" soll Unternehmen den Einstieg in KI erleichtern.
Das Wachstum konzentriert sich wie im Vorjahr auf das zweite Halbjahr. Google dominiert bei den…