~Java4Beginners~
~Java4Beginners~

Formatter-Klassen

Ein Formatter ist für 2 Aufgaben zuständing. Zu einem wird die tatsächliche Formatierung übernommen, zum anderen wird die formatierte Ausgabe an ein Ziel weitergegeben.

Über die Formatter haben wir einige starke Methoden, Zahlen zu formatieren.

Währung formatieren

Um Double-Werte als Währung anzuzeigen, benötigen wir die NumberFormat-Klasse. Über das DezimalFormat können wir mit der Methode getCurrencyInstance die nach ISO-4217 gültigen Währungsdaten auslesen.

Diese kleine, aber feine Schleife, liefert uns alle 225 Eintragungen (Stand Java 8), welche Währungen Currency enthält.

        for ( Currency currency : Currency.getAvailableCurrencies() )
      {
        System.out.printf( "%s, %s, %s (%s)%n",
                     currency.getCurrencyCode(),
                     currency.getSymbol(),
                     currency.getDisplayName(),
                     currency.getDisplayName(Locale.GERMAN) );
      }
Nachfolgend noch eine kleine Beispielmethode, in welcher die Beträge in Euro formatiert werden.

  /**
   * Berechnung der fehlenden Werte
   * @param art String n für netto, b für brutto
   * @param betrag double eingegebener Betrag
   * @param ust int Umsatzsteuersatz
   */
  public static void calcUst(String art, double betrag, int ust)
  {
    double nettobetrag, bruttobetrag, umsatzsteuerbetrag;
    if ("n".equals(art))
    {
      nettobetrag = getRounded(betrag);
      umsatzsteuerbetrag = getRounded(nettobetrag * ust / 100);
      bruttobetrag = getRounded(nettobetrag + umsatzsteuerbetrag);
    }
    else
    {
      bruttobetrag = getRounded(betrag);
      umsatzsteuerbetrag = getRounded(bruttobetrag / (ust + 100) * ust);
      nettobetrag = getRounded(bruttobetrag - umsatzsteuerbetrag);
    }
    NumberFormat eur = DecimalFormat.getCurrencyInstance( Locale.GERMANY);
    System.out.printf("%-20s%-2s%20s%n", "Nettobetrag",":",eur.format(nettobetrag));
    System.out.printf("%-20s%-2s%20s%n", "+ "+ust+" % USt: ",":",eur.format(umsatzsteuerbetrag));
    System.out.println("------------------------------------------");
    System.out.printf("%-20s%-2s%20s%n", "Bruttobetrag",":",eur.format(bruttobetrag));
  }
Als Ergebnis dieser Methode erhalten wir:

Nettobetrag         :             123,11 €
+ 19 % USt:         :              23,39 €
------------------------------------------
Bruttobetrag        :             146,50 €
nach oben Java4Beginners -- Seitenversion 1.0 -- Stand: 2017-07-09