exponentielle schreibweise

Status
Nicht offen für weitere Antworten.
C

Corius

Gast
ich hab da nochmal ne frage an euch und zwar wie ich bei dem folgenden beispiel die exponentielle schreibweise weg bekommen
ich würde mich freuen wenn ihr mir helfen könnt!!!
Code:
// Datei CTaschenRechner.java  

// Ein einfacher Taschenrechner
import java.awt.*;
import java.awt.event.*;
import java.text.*;

class CTaschenRechner extends Frame 
                     implements ActionListener
                     
                     
  {
	
  // Instanzvariablen
  double m_speicher = 0;        // Datenspeicher 
  double m_zwischenWert = 0;    // für 1. Operand
  boolean m_operand = false;    // 1. Operand 
                                // eingegeben?
  char m_aktOperation = 'k';    // 'k'eine Operation
  boolean m_neueZahl = true;   // neue Zahl ?
  boolean m_vorKomma = true;    // '.' gedrückt ?
  TextField m_anzeige;          // Display
  
  // Konstruktor 
  
  CTaschenRechner(String titel)
    {
	  super(titel);
    // den LayoutManager für die Klasse selbst
    // 6 Zeilen und 1 Spalte 5 Pixel Abstand 
    // dazwischen
    setLayout(new GridLayout(7,1,5,5));
    
    m_anzeige = new TextField(20);
    m_anzeige.setEditable(false); 
    m_anzeige.setFont(new Font("Comic Sans MS", Font.PLAIN, 25));
    m_anzeige.setText("0");
    m_anzeige.setBackground(Color.red);
    
    //Schalter erzeugen
    Button taste_0 = new Button("0");
    Button taste_1 = new Button("1");
    Button taste_2 = new Button("2");
    Button taste_3 = new Button("3");
    Button taste_4 = new Button("4");
    Button taste_5 = new Button("5");
    Button taste_6 = new Button("6");
    Button taste_7 = new Button("7");
    Button taste_8 = new Button("8");
    Button taste_9 = new Button("9");
    
    Label a = new Label("");
   
    Label b = new Label("");
    Label c = new Label("");
    Label d = new Label("");
    
    Button alöschen=new Button("CE");
    Button plus = new Button("+");
    Button minus = new Button("-");
    Button mal = new Button("*");
    Button geteilt = new Button("/");
    Button gleich = new Button("=");
    Button punkt = new Button(".");
    Button plusminus = new Button("+/-");
    Button speichern = new Button("MS");
    Button laden = new Button("MR");
    Button löschen = new Button("C");

    // In Panels zeilenweise anordnen
    Panel zeile1 = new Panel();
    Panel zeile2 = new Panel();
    Panel zeile3 = new Panel();
    Panel zeile4 = new Panel();
    Panel zeile5 = new Panel();

    GridLayout zeilenLayout = new GridLayout(1,5,5,5);
    zeile1.setLayout(zeilenLayout);
    zeile2.setLayout(zeilenLayout);
    zeile3.setLayout(zeilenLayout);
    zeile4.setLayout(zeilenLayout);
    zeile5.setLayout(zeilenLayout);

    // Nun die Komponenten hinzufügen
    add(m_anzeige);       // das TextField
    add(new Label(""));   // leere Zeile zur 
                          // Auflockerung
  
    zeile5.add(a);
    zeile5.add(b);
    zeile5.add(c);
    zeile5.add(d);
    zeile5.add(alöschen);
    add(zeile5);
   
    
    zeile1.add(taste_7);
    zeile1.add(taste_8);
    zeile1.add(taste_9);
    zeile1.add(geteilt);
    zeile1.add(löschen);
    add(zeile1);

    zeile2.add(taste_4);
    zeile2.add(taste_5);
    zeile2.add(taste_6);
    zeile2.add(mal);
    zeile2.add(speichern);
    add(zeile2);

    zeile3.add(taste_1);
    zeile3.add(taste_2);
    zeile3.add(taste_3);
    zeile3.add(plus);
    zeile3.add(laden);
    add(zeile3);

    zeile4.add(taste_0);
    zeile4.add(plusminus);
    zeile4.add(punkt);
    zeile4.add(minus);
    zeile4.add(gleich);
    add(zeile4);
    
    // die Schalter bei einem Lauscher registrieren. 
    taste_0.addActionListener(this);
    taste_1.addActionListener(this);
    taste_2.addActionListener(this);
    taste_3.addActionListener(this);
    taste_4.addActionListener(this);
    taste_5.addActionListener(this);
    taste_6.addActionListener(this);
    taste_7.addActionListener(this);
    taste_8.addActionListener(this);
    taste_9.addActionListener(this);
    

    addWindowListener(new CMeinWindowLauscher());
    
    alöschen.addActionListener(this);
    plus.addActionListener(this);
    minus.addActionListener(this);
    mal.addActionListener(this);
    gleich.addActionListener(this);
    geteilt.addActionListener(this);
    löschen.addActionListener(this);
    speichern.addActionListener(this);
    laden.addActionListener(this);
    plusminus.addActionListener(this);
    punkt.addActionListener(this);
    }

  //Ereignisbehandlung
  public void actionPerformed(ActionEvent e) {
    String str, aktText;
    int index;
    char zeichen;
    double wert;

    str = e.getActionCommand();
    // Ermitteln, welcher Schalter gedrückt worden 
    // ist
    if(str.equals("+/-")) {
      // Vorzeichen wechseln
      wert= Double.valueOf(
                 m_anzeige.getText()).doubleValue();
      wert *= -1;
      m_anzeige.setText(Double.toString(wert));
      return;
      }

    if(str.equals("MS")) {
      // den aktuellen Wert im Display abspeichern
      m_speicher = Double.valueOf(
                 m_anzeige.getText()).doubleValue();
      return;
      }

    if(str.equals("MR")) {
      // den Inhalt der Speichervariablen anzeigen 
      m_anzeige.setText(
                       Double.toString(m_speicher));
      return;
      }

    
  if(str.equals("CE")){  m_anzeige.setText("0");
	m_speicher = 0;
	m_zwischenWert = 0;
	m_aktOperation = 'k';
	m_operand = false;
	m_vorKomma = true;
	m_neueZahl = true;
	return;}
    // die restlichen Schalter haben nur ein Zeichen 
    // als Beschriftung. Daher betrachten wir nur 
    // das erste Zeichen und können mit der 
    // handlichen switch-Anweisung arbeiten
    zeichen = str.charAt(0);

    switch(zeichen)
      {
      		case 'C' : // alles zurücksetzen
                 m_anzeige.setText("0");
                 
                 m_zwischenWert = 0;
                 m_aktOperation = 'k';
                 m_operand = false;
                 m_vorKomma = true;
                 m_neueZahl = true;
                 break;
      case '+':
      case '-':
      case '*':
      case '/': // die aktuelle Operation merken und 
                // den 1. Operand zwischenspeichern
                if(m_aktOperation == 'k') {
                   // 'k'eine Operation vorher
                   m_zwischenWert = 
  Double.valueOf(m_anzeige.getText()).doubleValue();
                   m_operand = true;
                   m_aktOperation = zeichen;
                   m_neueZahl = true;
                   break;
                   }
                if(m_operand == true) {
                   berechnungAusführen();
                   m_neueZahl = true;
                   m_vorKomma = true;
                   m_aktOperation = zeichen;
                   break;
                   }
      case '=': // eine schwebende Operation 
                // ausführen
               if(m_aktOperation!='k' 
                           && m_operand==true) {
                  berechnungAusführen();
                  m_aktOperation = 'k';
                  m_operand = false;
                  m_neueZahl = true;
                  m_vorKomma = true;
                  break;
                  }
      case '.': // Wenn noch kein Punkt eingeben 
                // worden ist, einen hinzufügen 
                if(m_neueZahl == true) {
                  // wenn mit einem Komma begonnen 
                  // wird, ist der Vorkomma-Wert 0
                  m_anzeige.setText("0");
                  m_neueZahl = false;
                 
                  }
                if(m_vorKomma == true) {
                  m_vorKomma = true;
                  aktText = m_anzeige.getText();
                  aktText += ".";
                  
                  m_anzeige.setText(aktText);
                  }
                break;
      default: // alles andere muß ein Zahlenbutton 
               // sein
               if(m_neueZahl == true) {
                  m_neueZahl = false;
                  m_anzeige.setText("");
                  }
               aktText = m_anzeige.getText();
               m_anzeige.setText(aktText + zeichen);
               break;
      }
  }

  // Hier wird das Ergebnis berechnet und angezeigt
  void berechnungAusführen() {
    double operand1,operand2;
    double ergebnis = 0;

    operand1 = m_zwischenWert;
    operand2 = Double.valueOf(
             m_anzeige.getText()).doubleValue();
    switch(m_aktOperation)
       {
       case '+': ergebnis = operand1 + operand2;
                 break;
       case '-': ergebnis = operand1 - operand2;
                 break;
       case '*': ergebnis = operand1 * operand2;
                 break;
       case '/': if(operand2 != 0)
                   ergebnis = operand1 / operand2;
                 else
                   ergebnis = 0;
                 break;
       }

    // Das Ergebnis wird als neuer Zwischenwert 
    // gespeichert
    m_zwischenWert  = ergebnis;
    m_anzeige.setText(Double.toString(ergebnis));
    NumberFormat nf = NumberFormat.getInstance();
    nf.setMaximumFractionDigits(12);

    }

  // Lieblingsgröße des Taschenrechners festlegen
  public Dimension getMinimumSize()
    {
    return getPreferredSize();
    }

  public Dimension getPreferredSize()
    {
    return new Dimension(250,300);
    }
  
  public static void main(String []args){
	  
	  CTaschenRechner Fenster= new CTaschenRechner("Taschenrechner");
	  Fenster.show();
	  Fenster.pack();
  }
  
  class CMeinWindowLauscher extends WindowAdapter{
	  public void windowClosing(WindowEvent e){
		  
		  System.exit(0);
	  }
  }
}   // Ende der Klasse 'CTaschenRechner'
 

byte

Top Contributor
Was ist eine exponentielle Schreibweise? Und warum postest Du 300 Zeilen Code anstatt nur den relevanten Teil Deiner Frage?

Ein bißchen Mühe sollte man sich schon geben, wenn man eine Antwort haben will...
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben