Hallo erstmal,
ich bin neu hier und habe eine frage zum Thema Java (wer hätte das gedacht
).
Also ich bin noch ein Anfänger bei Java und lerne dies auch nur in der Schule und in meiner Freizeit.
So, meine "Programm" (Ticketautomat) welches ich gemacht habe berechnet double werte falsch, etwa um 0.0000000001.
Ich selber habe mir schon den Kopf darüber zerbrochen wieso dies passiert jedoch bin ich nicht auf die Lösung gekommen.
Hier der Quell-Code
Ich hoffe ihr könnt mir helfen
.
Vielen Dank schon mal.
Viele Grüße
Triforce1000
Fehler:
ich bin neu hier und habe eine frage zum Thema Java (wer hätte das gedacht
Also ich bin noch ein Anfänger bei Java und lerne dies auch nur in der Schule und in meiner Freizeit.
So, meine "Programm" (Ticketautomat) welches ich gemacht habe berechnet double werte falsch, etwa um 0.0000000001.
Ich selber habe mir schon den Kopf darüber zerbrochen wieso dies passiert jedoch bin ich nicht auf die Lösung gekommen.
Hier der Quell-Code
Java:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
/**
*
* Beschreibung
*
* @version 1.0 vom 18.02.2015
* @author
*/
public class TicketautomatV1 extends Applet {
// Anfang Attribute
private Label l_titel = new Label();
private Button b_A = new Button();
private Button b_B = new Button();
private Button b_C = new Button();
private Button b_5c = new Button();
private Button b_10c = new Button();
private Button b_20c = new Button();
private Button b_50c = new Button();
private Button b_100c = new Button();
private Button b_200c = new Button();
private Label l_preis = new Label();
private Label l_rest = new Label();
private Label l_gezahlt = new Label();
private TextField tf_preis = new TextField();
private TextField tf_rest = new TextField();
private TextField tf_gezahlt = new TextField();
private Button b_drucken = new Button();
private Button b_abbrechen = new Button();
private double Preis;
private double Rest;
private double Gezahlt;
private double Rueckgeld;
private String PreisStufe;
// Ende Attribute
public TicketautomatV1()
{
Preis = 0.0;
Rest = 0.0;
Gezahlt = 0.0;
PreisStufe = "";
tf_gezahlt.setText(Gezahlt + "");
}
public void init() {
Panel cp = new Panel(null);
cp.setBounds(0, 0, 390, 406);
add(cp);
// Anfang Komponenten
l_titel.setBounds(40, 8, 275, 65);
l_titel.setText("Ticketautomat");
l_titel.setFont(new Font("Dialog", Font.PLAIN, 32));
l_titel.setAlignment(Label.CENTER);
cp.add(l_titel);
b_A.setBounds(24, 88, 65, 57);
b_A.setLabel("A");
b_A.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b_A_ActionPerformed(evt);
}
});
b_A.setFont(new Font("Dialog", Font.PLAIN, 32));
cp.add(b_A);
b_B.setBounds(104, 88, 65, 57);
b_B.setLabel("B");
b_B.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b_B_ActionPerformed(evt);
}
});
b_B.setFont(new Font("Dialog", Font.PLAIN, 32));
cp.add(b_B);
b_C.setBounds(184, 88, 65, 57);
b_C.setLabel("C");
b_C.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b_C_ActionPerformed(evt);
}
});
b_C.setFont(new Font("Dialog", Font.PLAIN, 32));
cp.add(b_C);
b_5c.setBounds(272, 96, 81, 25);
b_5c.setLabel("0.05 €");
b_5c.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b_5c_ActionPerformed(evt);
}
});
b_5c.setEnabled(false);
cp.add(b_5c);
b_10c.setBounds(272, 136, 81, 25);
b_10c.setLabel("0.10 €");
b_10c.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b_10c_ActionPerformed(evt);
}
});
b_10c.setEnabled(false);
cp.add(b_10c);
b_20c.setBounds(272, 176, 81, 25);
b_20c.setLabel("0.20 €");
b_20c.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b_20c_ActionPerformed(evt);
}
});
b_20c.setEnabled(false);
cp.add(b_20c);
b_50c.setBounds(272, 216, 81, 25);
b_50c.setLabel("0.50 €");
b_50c.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b_50c_ActionPerformed(evt);
}
});
b_50c.setEnabled(false);
cp.add(b_50c);
b_100c.setBounds(272, 256, 81, 25);
b_100c.setLabel("1.00 €");
b_100c.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b_100c_ActionPerformed(evt);
}
});
b_100c.setEnabled(false);
cp.add(b_100c);
b_200c.setBounds(272, 296, 81, 25);
b_200c.setLabel("2.00 €");
b_200c.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b_200c_ActionPerformed(evt);
}
});
b_200c.setEnabled(false);
cp.add(b_200c);
l_preis.setBounds(24, 160, 83, 25);
l_preis.setText("Preis:");
cp.add(l_preis);
l_rest.setBounds(24, 200, 83, 25);
l_rest.setText("Rest:");
cp.add(l_rest);
l_gezahlt.setBounds(24, 240, 83, 25);
l_gezahlt.setText("Gezahlt");
cp.add(l_gezahlt);
tf_preis.setBounds(120, 160, 97, 25);
tf_preis.setEditable(false);
cp.add(tf_preis);
tf_rest.setBounds(120, 200, 97, 25);
tf_rest.setEditable(false);
cp.add(tf_rest);
tf_gezahlt.setBounds(120, 240, 97, 25);
tf_gezahlt.setEditable(false);
cp.add(tf_gezahlt);
b_drucken.setBounds(24, 288, 233, 41);
b_drucken.setLabel("Drucken");
b_drucken.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b_drucken_ActionPerformed(evt);
}
});
b_drucken.setFont(new Font("Dialog", Font.PLAIN, 24));
b_drucken.setEnabled(false);
cp.add(b_drucken);
b_abbrechen.setBounds(272, 336, 81, 25);
b_abbrechen.setLabel("Abbrechen");
b_abbrechen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b_abbrechen_ActionPerformed(evt);
}
});
cp.add(b_abbrechen);
// Ende Komponenten
} // end of init
// Anfang Methoden
public void b_A_ActionPerformed(ActionEvent evt) {
Preis = 1.40;
PreisStufe = "A";
tf_preis.setText("1.40 €");
b_A.setEnabled(false);
b_B.setEnabled(false);
b_C.setEnabled(false);
b_5c.setEnabled(true);
b_10c.setEnabled(true);
b_20c.setEnabled(true);
b_50c.setEnabled(true);
b_100c.setEnabled(true);
b_200c.setEnabled(true);
} // end of b_A_ActionPerformed
public void b_B_ActionPerformed(ActionEvent evt) {
Preis = 2.70;
PreisStufe = "B";
tf_preis.setText("2.70 €");
b_A.setEnabled(false);
b_B.setEnabled(false);
b_C.setEnabled(false);
b_5c.setEnabled(true);
b_10c.setEnabled(true);
b_20c.setEnabled(true);
b_50c.setEnabled(true);
b_100c.setEnabled(true);
b_200c.setEnabled(true);
} // end of b_B_ActionPerformed
public void b_C_ActionPerformed(ActionEvent evt) {
Preis = 5.95;
PreisStufe = "C";
tf_preis.setText("5.95 €");
b_A.setEnabled(false);
b_B.setEnabled(false);
b_C.setEnabled(false);
b_5c.setEnabled(true);
b_10c.setEnabled(true);
b_20c.setEnabled(true);
b_50c.setEnabled(true);
b_100c.setEnabled(true);
b_200c.setEnabled(true);
} // end of b_C_ActionPerformed
public void b_5c_ActionPerformed(ActionEvent evt) {
Gezahlt += 0.05;
tf_gezahlt.setText(Gezahlt + " €");
Rest = Preis - Gezahlt;
if(Rest < 0){
l_rest.setText("Rückgeld:");
Rueckgeld = (Preis - Gezahlt) *(-1);
tf_rest.setText(Rueckgeld + "");
}else{
tf_rest.setText(Rest + " €");
}
if(Gezahlt == Preis || Gezahlt > Preis){
b_5c.setEnabled(false);
b_10c.setEnabled(false);
b_20c.setEnabled(false);
b_50c.setEnabled(false);
b_100c.setEnabled(false);
b_200c.setEnabled(false);
b_drucken.setEnabled(true);
}
} // end of b_5c_ActionPerformed
public void b_10c_ActionPerformed(ActionEvent evt) {
Gezahlt += 0.10;
tf_gezahlt.setText(Gezahlt + " €");
Rest = Preis - Gezahlt;
if(Rest < 0){
l_rest.setText("Rückgeld:");
Rueckgeld = (Preis - Gezahlt) *(-1);
tf_rest.setText(Rueckgeld + "");
}else{
tf_rest.setText(Rest + " €");
}
if(Gezahlt == Preis || Gezahlt > Preis){
b_5c.setEnabled(false);
b_10c.setEnabled(false);
b_20c.setEnabled(false);
b_50c.setEnabled(false);
b_100c.setEnabled(false);
b_200c.setEnabled(false);
b_drucken.setEnabled(true);
}
} // end of b_10c_ActionPerformed
public void b_20c_ActionPerformed(ActionEvent evt) {
Gezahlt += 0.20;
tf_gezahlt.setText(Gezahlt + " €");
Rest = Preis - Gezahlt;
if(Rest < 0){
l_rest.setText("Rückgeld:");
Rueckgeld = (Preis - Gezahlt) *(-1);
tf_rest.setText(Rueckgeld + "");
}else{
tf_rest.setText(Rest + " €");
}
if(Gezahlt == Preis || Gezahlt > Preis){
b_5c.setEnabled(false);
b_10c.setEnabled(false);
b_20c.setEnabled(false);
b_50c.setEnabled(false);
b_100c.setEnabled(false);
b_200c.setEnabled(false);
b_drucken.setEnabled(true);
}
} // end of b_20c_ActionPerformed
public void b_50c_ActionPerformed(ActionEvent evt) {
Gezahlt += 0.50;
tf_gezahlt.setText(Gezahlt + " €");
Rest = Preis - Gezahlt;
if(Rest < 0){
l_rest.setText("Rückgeld:");
Rueckgeld = (Preis - Gezahlt) *(-1);
tf_rest.setText(Rueckgeld + "");
}else{
tf_rest.setText(Rest + " €");
}
if(Gezahlt == Preis || Gezahlt > Preis){
b_5c.setEnabled(false);
b_10c.setEnabled(false);
b_20c.setEnabled(false);
b_50c.setEnabled(false);
b_100c.setEnabled(false);
b_200c.setEnabled(false);
b_drucken.setEnabled(true);
}
} // end of b_50c_ActionPerformed
public void b_100c_ActionPerformed(ActionEvent evt) {
Gezahlt += 1.00;
tf_gezahlt.setText(Gezahlt + " €");
Rest = Preis - Gezahlt;
if(Rest < 0){
l_rest.setText("Rückgeld:");
Rueckgeld = (Preis - Gezahlt) *(-1);
tf_rest.setText(Rueckgeld + "");
}else{
tf_rest.setText(Rest + " €");
}
if(Gezahlt == Preis || Gezahlt > Preis){
b_5c.setEnabled(false);
b_10c.setEnabled(false);
b_20c.setEnabled(false);
b_50c.setEnabled(false);
b_100c.setEnabled(false);
b_200c.setEnabled(false);
b_drucken.setEnabled(true);
}
} // end of b_100c_ActionPerformed
public void b_200c_ActionPerformed(ActionEvent evt) {
Gezahlt += 2.00;
tf_gezahlt.setText(Gezahlt + " €");
Rest = Preis - Gezahlt;
if(Rest < 0){
l_rest.setText("Rückgeld:");
Rueckgeld = (Preis - Gezahlt) *(-1);
tf_rest.setText(Rueckgeld + "");
}else{
tf_rest.setText(Rest + " €");
}
if(Gezahlt == Preis || Gezahlt > Preis){
b_5c.setEnabled(false);
b_10c.setEnabled(false);
b_20c.setEnabled(false);
b_50c.setEnabled(false);
b_100c.setEnabled(false);
b_200c.setEnabled(false);
b_drucken.setEnabled(true);
}
}
public void b_drucken_ActionPerformed(ActionEvent evt) {
drucken();
Gezahlt = 0.0;
Rest = 0.0;
Rueckgeld = 0.0;
Preis = 0.0;
PreisStufe = "";
tf_preis.setText(Preis + " €");
tf_gezahlt.setText(Gezahlt + " €");
tf_rest.setText(Rest + " €");
b_A.setEnabled(true);
b_B.setEnabled(true);
b_C.setEnabled(true);
b_5c.setEnabled(false);
b_10c.setEnabled(false);
b_20c.setEnabled(false);
b_50c.setEnabled(false);
b_100c.setEnabled(false);
b_200c.setEnabled(false);
b_drucken.setEnabled(false);
} // end of b_drucken_ActionPerformed
public void b_abbrechen_ActionPerformed(ActionEvent evt) {
Gezahlt = 0.0;
Rest = 0.0;
Rueckgeld = 0.0;
Preis = 0.0;
PreisStufe = "";
tf_preis.setText(Preis + " €");
tf_gezahlt.setText(Gezahlt + " €");
tf_rest.setText(Rest + " €");
b_A.setEnabled(true);
b_B.setEnabled(true);
b_C.setEnabled(true);
b_5c.setEnabled(false);
b_10c.setEnabled(false);
b_20c.setEnabled(false);
b_50c.setEnabled(false);
b_100c.setEnabled(false);
b_200c.setEnabled(false);
b_drucken.setEnabled(false);
} // end of b_abbrechen_ActionPerformed
public void drucken(){
System.out.println("------------------------------");
System.out.println("------------Ticket------------");
System.out.println("-----Preisstufe " + PreisStufe + " " + Preis + " €-------");
System.out.println("------------------------------");
System.out.println("------------------------------");
System.out.println("Ihr Rückgeld entspricht " + Rueckgeld + " €");
}
// Ende Methoden
} // end of class Ticketautomat
Ich hoffe ihr könnt mir helfen
Vielen Dank schon mal.
Viele Grüße
Triforce1000
Fehler:
