package de.hska.java.aufgaben.interfaces;

/**
 * Eine positive ganze Dezimalzahl mit (fast)
 * beliebig vielen Dezimalstellen.
 * 
 * <p>
 *   <a href="http://www.home.hs-karlsruhe.de/~pach0003/informatik_1/aufgaben/interfaces.html#dezimalzahl">Zurück zum Aufgabentext</a>
 * </p>
 * 
  * @author pape
 *
 */
public interface Dezimalzahl {

	/**
	 * Gibt den Wert dieser Dezimalzahl als double-Wert zurück.
	 * Bei großen Dezimalzahlen kann dabei Genauigkeit verloren gehen.
	 * Die Größenordnung bleibt erhalten.
	 */
	public double getDouble();

	/**
	 * Addiert diese Dezimalzahl zur <code>zahl</code> und
	 * gibt die Summe als neue Dezimalzahl zurück.
	 */
	public Dezimalzahl addieren(Dezimalzahl zahl);

	/**
	 * Multipliziert diese Dezimalzahl zur <code>zahl</code> und
	 * gibt das Produkt als neue Dezimalzahl zurück.
	 */
	public Dezimalzahl multiplizieren(Dezimalzahl zahl);
	
	/**
	 * Gibt die Anzahl Ziffern zurück.
	 */
	public int getAnzahlZiffern();

	/**
	 * Gibt die Ziffer an Stelle i zurück, wobei
	 * i = 0, 1, ... getAnzahlZiffern() - 1 ist.
	 */
	public byte getZiffer(int i);
}

