Einführung in die Formatierung von Zahlen in Java im Rahmen der Lehre des Programmierens mit der Programmiersprache Java. [] (Zahlenformatierungen, Formatierung von Zahlen), Lektion, Seite 720124
https://www.purl.org/stefan_ram/pub/java_zahlenformatierungen_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Zahlenformatierungen in Java 

Diese Lektion stellt klassische Möglichkeiten zur Zahlenformatierung vor aus den 90er Jahren vor. In neueren Java -Versionen (seit 2004) sind diese durch weitere Möglichkeiten ergänzt worden, die teilweise bequemer verwendet werden können. In einzelnen Fällen könnte es aber dennoch einmal hilfreich sein, auch die hier vorgestellten klassischen Formatierungsmöglichkeiten zu kennen.

Objekte der Klasse »java.text.DecimalFormat« können Gleitkommazahlen als Text darstellen, die Art der Darstellung kann dabei in verschiedener Weise gesteuert werden.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final java.text.DecimalFormat twoDigits = new java.text.DecimalFormat( "0.00" );
java.lang.System.out.println( twoDigits.format( 3.159 ));
java.lang.System.out.println( twoDigits.format( 3.1 ));
java.lang.System.out.println( twoDigits.format( 3 )); }}
transcript (System mit Dezimalkomma)
3,16
3,10
3,00
transcript (System mit Dezimalpunkt)
3.16
3.10
3.00

Das Dezimaltrennzeichen

Die Formatierung verwendet den Schauplatz des Programmes, sie hängt also von der Ausführungsumgebung ab. Wenn das Programm auf einem System läuft, dessen Dezimaltrennzeichen das Komma »,« ist, dann wird das hier auch zur Darstellung der Zahl verwendet. Wir nehmen in dieser Lektion fürderhin ein System an, welches ein Dezimalkomma verwendet.

Runden auf ein gewünschte Anzahl von Nachkommastellen

Die Formatierung mit einem Exemplar der Klasse »java.text.DecimalFormat« erlaubt, es mit dem Platzhalter »0« zu verlangen, daß Stellen, die sonst leer bleiben würden, eine »0« erhalten, so daß bei Verwendung des Formatspezifizierers »0.00« die Zahl 3 durch den Text »3,00« dargestellt wird. Wenn nicht alle Nachkommastellen dargestellt werden sollen, so wird auf die gewünschte Stellenzahl gerundet.

Kein  rechtsbündiges Ausrichten möglich

Durch Verwendung von Platzhaltern können Zahlen nicht  rechtsbündig ausgerichtet werden.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final java.text.DecimalFormat twoDigits =
new java.text.DecimalFormat( "##,###.00" );
System.out.println( twoDigits.format( 3 ));
System.out.println( twoDigits.format( 30 ));
System.out.println( twoDigits.format( 300 ));
System.out.println( twoDigits.format( 3000 ));
System.out.println( twoDigits.format( 30000 )); }}
transcript
3.00
30.00
300.00
3,000.00
30,000.00

Die Formatierungszeichen

»0« eine Ziffer

»#« eine Ziffer, Nullen werden unter Umständen nicht dargestellt

».« das Dezimaltrennzeichen (immer)

»,« das Gruppierungszeichen (immer)

»-« ein eventuelles negatives Vorzeichen

»E« Das »E« für Formatierung in E-Schreibweise (wie 2E3)

»%« Verlangt Darstellung als Prozentwert

Jedes andere Zeichen kann direkt oder nach einem Apostroph verwendet werden.

Einstellen eines bestimmten Schauplatzes

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final java.text.DecimalFormatSymbols germany
= new java.text.DecimalFormatSymbols( java.util.Locale.GERMANY ); final java.text.DecimalFormatSymbols usa
= new java.text.DecimalFormatSymbols( java.util.Locale.US ); final java.text.DecimalFormat german
= new java.text.DecimalFormat( "##,###.00", germany ); final java.text.DecimalFormat us
= new java.text.DecimalFormat( "##,###.00", usa ); System.out.println( german.format( 30000 )); System.out.println( us.format( 30000 )); }}
transcript
30.000,00
30,000.00
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final java.text.DecimalFormatSymbols germany
= new java.text.DecimalFormatSymbols( new java.util.Locale( "de", "DE" )); final java.text.DecimalFormatSymbols usa
= new java.text.DecimalFormatSymbols( new java.util.Locale( "en", "US" )); final java.text.DecimalFormat german
= new java.text.DecimalFormat( "##,###.00", germany ); final java.text.DecimalFormat us
= new java.text.DecimalFormat( "##,###.00", usa ); System.out.println( german.format( 30000 )); System.out.println( us.format( 30000 )); }}
transcript
30.000,00
30,000.00

Formatierung mit »java.text.NumberFormat«

Die Klasse »java.text.NumberFormat« erlaubt es, ein Minimum und ein Maxium für Stellenanzahlen festzulegen.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final java.text.NumberFormat f =
java.text.NumberFormat.getInstance();
/* getInstance( java.util.Locale.GERMAN ) */ f.setMinimumFractionDigits( 2 );
f.setMaximumFractionDigits( 2 );
java.lang.System.out.println( f.format( -1234.56789 ));
// -1.234,57 f.setMinimumFractionDigits( 10 );
f.setMaximumFractionDigits( 10 );
java.lang.System.out.println( f.format( -1234.56789 ));
// -1.234,5678900000 f.setMinimumFractionDigits( 0 );
f.setMaximumFractionDigits( 2 );
java.lang.System.out.println( f.format( -1234.56789 ));
// -1.234,57 f.setMinimumFractionDigits( 0 );
f.setMaximumFractionDigits( 10 );
java.lang.System.out.println( f.format( -1234.56789 ));
// -1.234,56789 f.setMinimumIntegerDigits( 2 );
f.setMaximumIntegerDigits( 2 );
java.lang.System.out.println( f.format( -1234.56789 ));
// -34,56789 f.setMinimumIntegerDigits( 10 );
f.setMaximumIntegerDigits( 10 );
java.lang.System.out.println( f.format( -1234.56789 ));
// -0.000.001.234,56789 f.setMinimumIntegerDigits( 0 );
f.setMaximumIntegerDigits( 2 );
java.lang.System.out.println( f.format( -1234.56789 ));
// -34,56789 f.setMinimumIntegerDigits( 0 );
f.setMaximumIntegerDigits( 10 );
java.lang.System.out.println( f.format( -1234.56789 ));
// -1.234,56789 }}
transcript
-1.234,57
-1.234,5678900000
-1.234,57
-1.234,56789
-34,56789
-0.000.001.234,56789
-34,56789
-1.234,56789
transcript
-1,234.57
-1,234.5678900000
-1,234.57
-1,234.56789
-34.56789
-0,000,001,234.56789
-34.56789
-1,234.56789

Das folgende Beispielprogramm zeigt die Formatierung einer Tabelle, welche sicherstellt, daß immer zwei Nachkommastellen ausgegeben werden.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final java.text.NumberFormat formatter =
java.text.NumberFormat.getNumberInstance();
/* getInstance( java.util.Locale.GERMAN ) */
double saldo = 1000;
formatter.setMinimumFractionDigits( 2 );
formatter.setMaximumFractionDigits( 2 );
for( int i = 0; i < 10; ++i )
{ final java.lang.String saldoString = formatter.format( saldo );
for( int j = saldoString.length(); j < 10; ++j )
java.lang.System.out.print( ' ' );
java.lang.System.out.println( i + " " + saldoString );
saldo *= 1.05; }}}
transcript
  0 1,000.00
1 1,050.00
2 1,102.50
3 1,157.62
4 1,215.51
5 1,276.28
6 1,340.10
7 1,407.10
8 1,477.46
9 1,551.33

Rundung mit »java.math.BigDecimal«

Die Klasse »java.math.BigDecimal« enthält Möglichkeiten zur Rundung von Zahlen. Der Modus »java.math.BigDecimal.ROUND_HALF_UP« verlangt Rundung zum nächstliegenden Wert mit der angegebenen Stellenzahl und Aufrundung, falls dabei mehrere Werte in Frage kommen.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( ( ( new java.math.BigDecimal( "1234.5678" )).
setScale( 2, java.math.BigDecimal.ROUND_HALF_UP ))); }}
transcript
1234.57

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram720124 stefan_ram:720124 Zahlenformatierungen, Formatierung von Zahlen Ausgabe, Formatierung, Ausgabeformatierung, Nach komma stellen, Softwareentwicklung, Software-Entwicklung, Software Entwicklung, Softwareprogrammierung, Software-Programmierung, Software Programmierung, Softwareherstellung, Software-Herstellung, Software Herstellung, Softwareerstellung, Software-Erstellung, Software Erstellung, Softwareengineering, Software-Engineering, Software Engineering, Softwareenginering, Software-Enginering, Software Enginering, Softwaremethodik, Software-Methodik, Software Methodik, Programmiermethodik, Programmier-Methodik, Programmier Methodik, Softwaredidaktik, Software-Didaktik, Software Didaktik, Methodik des Programmierens, Didaktik des Programmierens, Fachdidaktik des Programmierens, Fach-Didaktik des Programmierens, Programmieren, Programmierung, Computer Science, Informatik, Informatik, Informationspädagogik, Informationspaedagogik, Programmierer, programmieren, Quellcode, Quelltext, Quelle, Quellen, Informatiker, Fachinformatiker, Entwickler, mit Stil, mit Stiel, mit Still, , Einführung, Einfuehrung, Einführungen, Einfuehrungen, eLearning-Modul, e-Learning-Modul, eLearning-Module, e-Learning-Module, Kurs Berlin, Kurse Berlin, Kursus, Vortrag, Vorträge, Vortraege, Lehrgang, Lehrgänge, Lehrgaenge, kostenloses Lehrmaterial, kostenlose Lehrmaterialien, Vorlesung, Vorlesungen, Unterrichtseinheit, Unterrichtseinheiten, kostenloses Unterrichtsmaterial im Internet, kostenlose Unterrichtsmaterialien im Internet, Ausbildung, Ausbildungen, für die Ausbildung, Fortbildung, Fortbildungen, Weiterbildung, Weiterbildungen, Schulung Berlin, Schulungen Berlin, Internetschulung, Webschulung, Kursunterlage, Kursunterlagen, trainer Berlin, Didaktik, Informatikunterricht, Primer, Skript FH, Skripte FH, Skriptum FH, Skripts FH, Script FH, Scripte FH, Scriptum FH, Scripts FH, howto, how-to, how to, Lehrbuch, Buch, Bücher, Buecher, Bericht, Crash Kurs Berlin, Crash-Kurs Berlin, Crashkurs Berlin, Report, Sachtext, Sachtexte, Übung, Übungen, Uebung, Uebungen, course, PbclevtugFgrsnaEnz, lecture note, lecture notes, Tutorial, Tutor, Tutorium, Teacher, Lehrer Berlin, Trainer Berlin, Beratung Berlin, Anleitung zum, Anleitungen zum, Einführung, Einfuehrung, Einführungen, Einfuehrungen, Handbuch für, Handbücher, Handbuecher, Support, Diplomarbeit, Facharbeit, Hausarbeit, Hausarbeiten, Werk, Werke, Text, Übungsblatt, Uebungsblatt, Lösung, Loesung, Lösungen, Loesungen, Auflösung, Aufloesung, Auflösungen, Aufloesungen, Facharbeit, Facharbeiten, Forum, Training, manual, Folie, Folien, Lehrmittel, beratung, Definition von, Allgemeine Erklärung, Allgemeine Erklaerung, Allgemeine Erklärungen, Allgemeine Erklaerung, Allgemeine Erklaerungen, Einfache Erklärung einfach, Einfache Erklaerung einfach, Einfache Erklärungen, Einfache Erklaerung, Einfache Erklaerungen, zum Thema, FAQ, FAQs, Konzept, Lernkurs, Lern-Kurs, Lernkurse, Lern-Kurse, eine kurze Erklärung, Begriff, Begriffe, Erklärung zu Begriffen, begriffbestimmung, begriffbestimmung, Begriffsbestimmung, Begriffserklärung, Begriffserklaerung, Wort, Worterklärung, Worterklaerung, Definition, Beispiel, Beispiele, Bedeutung, Bedeutungen, was bedeutet, Begriffsdefinition, für Anfänger, fuer Anfaenger, für Einsteiger, für Beginner, zum selber Lernen, handout, hand out, web based training, WBT, Net Based Training, NBT, computer based training, CBT, virtual learning environment, virtual university, für die Schule, Seminar, Seminare, Vorgehensweise, Pädagogik, Paedagogik, Akademie, Onlineacademie, Onlineakademie, Wissen, Unterrichtsvorbereitung für das Fach, Unterricht, für Lehrer, für Lehrerinnen, Referat, Referate, Hausaufgabe, Hausaufgaben, Tip, Tipp. Tipps und Tricks, Tips und Tricks, Methode, Methoden, Methodik, Funktion, Funktionsweise, Aufbau, Prinzip, Grundlage, Grundlagen, Internetschulung, Unterlage, Unterlagen, Struktur, Frage, Fragen, Antwort, Antworten, Schulunterricht, zum erlernen, was ist das?, wie?, lerne, Onlineausbildung, Onlinelehrgang, Onlinekurs, Onlinebuch, Webbuch, Academy, Fachhochschule, FH, TFH, Hochschule, Universität, Universitaet, Uni, Schule, Berufsschule, Gymnasium, Erste Schritte mit, Dozent, Dozenten, Zusammenfassung, Übersicht, Term, Fachwort, Fachbegriff, Fachbegriffe, Grundbegriff, Grundbegriffe, Lektion, Lektionen, Bedienungsanleitung, Bedienungsanleitungen, Spezialist, Spezialisten, Coaching, Coach, Fachbuch, technologie, Unterschied zwischen, Unterschiede zwischen, lehren, unterrichten, für das Studium, für Studenten, für Studentinnen, für Studierende, für Schüler, für Schülerinnen, Wie kann ich, Wie kann man, Hilfe, selber, erstellen, Erstellung, Beginner, Online-Seminar, Online-Kurs, Online-Schulung, ich, gebrauchsanweisung, gebrauchsanleitung, Bedienungsanweisung, Einweisung, Kurzinfo, Internet-Kurs, Internet-Kurse, Online-Training, Intensiv, Intensivkurs, Vortragsreihe, Präsentation, Grundzüge, Mitschrift, Mitschriften, Verständnis, verstehen, anwenden, Hintergrundwissen, Hintergrund, Hintergründe, content, Funktionsprinzip, Schritt für Schritt; E-Learning; elearning; online learning; Fernlehre, Fernlehrgang, Fernlehrgänge, Referent, Referenten, Fernkurs, Fernkurse, Fernstudium, Fernschule, Fernuniversität, Fernlehrer, Denken, Qualifizierungsmaßnahme, Qualifizierung, Qualifizierungen, Volkshochschulkurs, Volkshochschulkurse, Internet-Learning-Plattform, Online-Learning-Plattform, E-Learning-Plattform, Internetlearning-Plattform, Onlinelearning-Plattform, Elearning-Plattform, jetzt, Kochbuch, einfach erklärt, Kenntnis, Kenntniss, Kenntnisse, deutsche Hilfe, lernen und verstehen; blended learning; courseware, Profi, Profis, professionell, professionelle, professionelles, profesionell, profesionelle, profesionelles, professionel, gekonnt, für Könner, Grundkurs, Leistungskurs, Aufbaukurs, Lehrtext, Lehrtexte, Fachtext, Fachtexte, Ausarbeitung, distance learning, Online Seminar, distance education, Online Tutorium, Online Tutorien, technology-based learning, Computer based learning, CBL, Internet Based learning, IBL, Web based learning, WBL, online-learning, OL, online-training, OT, CAI, Computer Assisted Instruction, CUU, Computerunterstützter Unterricht, Computer-unterstützter Unterricht, Know how, Grundkenntnis, Grundkenntnisse, Kompetenz, Schulungsunterlagen, Insiderwissen, Rat, Lehrerinnen und Lehrer, ABC, Überblick, Arbeitsblatt, Sekundarstufe, Oberstufe, Material, Materialien, Unterrichtsentwurf, Unterrichtsentwürfe, Lerntip, Lerntips, Lerntipp, Lerntipps, ebook, schnell lernen, Lerner, Lernender, Lernende Erwachsenenbildung, Frage und Antwort, Selbststudium, Selbstudium, Umschulung, , kostenlos, kostenlose, kostenloses, kosten los, kosten lose, kosten loses, gratis, free, frei, freie, freies, privat, private, privates, homepage, home-page, home page, website, web site, webpage, web-page, web page, webpages, web-pages, web pages, webseite, Web-Seite, Webseite, Webseiten, Web-Artikel, Web Artikel, online, on-line, on line, download downloaden, down load, or, deutsch, deutsche, deutsches, deutscher, Deutschland, deutschsprachig, deutschsprachige, deutschsprachiges, german, germany, and, uebersicht, Uerbersicht, uebersichten, Uebersichten, Übersicht, übersicht, Übersichten, übersichten, Uebersicht, uebersicht, Uebersichten, uebersichten, Info, Infos zu, Information über, ueber, Informationen über, Auskunft, Auskünfte, Auskuenfte, Dienst, PbclevtugFgrsnaEnz, Angebot, Angebote, Anbieter, server, für, fuer, in, an, keyword, keywords, key word, keywords, internet, internets, net, network, net work, networks, net works, web, www, world wide web, Theorie, Praxis, Anwendung, DV, IT, glossar, fachwörterbuch it-glossar, computer lexikon, Computerlexikon, Computer-Lexikon, Lexikon, computer lexicon, Computerlexicon, Computer-Lexicon, Lexicon, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 was ist ein, was ist das, was sind, definiere, definition, define, Inhalt, html, xhtml, free im netz, PDF Text, digital, digitale, binär, binäre, elektronisch, elektronische, fachbegriff, fachbegriffe, konzept, Begriff, allgemein, allgemeine, allgemeines, Technik, Datentechnik, Digitaltechnik, Binätechnik, online lesen; , Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd720124, slrprddef720124, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/java_zahlenformatierungen_de