/*
 * "Grundkurs Programmieren in Java - Band 2 (2. Auflage, 2006)I"
 * 2003-2006, Carl Hanser Verlag
 * Loesungsvorschlag zu Aufgabe 3.10 (Version 2.0)
 * (c) 2003-2006 D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger
 *
 */

import java.text.*;
public class FestPunktFormatNeu {
  private static DecimalFormat pos, nul, neg;
    
  // Konstruktor

  public FestPunktFormatNeu (int anzNach) {
    String s = "0";
    anzNach = Math.min(anzNach,12);
    for (int i=2; i<=anzNach; i++) 
      s = s + "0";
    pos = new DecimalFormat("+0."+s);
    nul = new DecimalFormat(" 0."+s);
    neg = new DecimalFormat("0."+s);
  }

  // Methode zur Formatierung
  public String format (double d) {
    if (d > 0)
      return pos.format(d);
    if (d == 0)
      return nul.format(d);
    else
      return neg.format(d);
  }
  
  // Einige Tests
  public static void main (String[] args) {
    double x = 9.654321;
    FestPunktFormatNeu f = new FestPunktFormatNeu(5);
    for (int i=1; i<=10; i++) {
      System.out.println(f.format(x));
      x = - x / 3.3;
    }
    System.out.println(f.format(0));
  }
}
