Possible loss of prcesion

Status
Nicht offen für weitere Antworten.
M

Micha34343

Gast
Hallo Alle!


Bin ein Anfänger und komme in meinem Programm nicht weiter. Kann mir einer helfen bei der Fehler Bereinigung und vorallem erklären wie der Fehler behoben wird. Hier mein Code:

Code:
import javax.swing.*;


public class EisLogik {
  // Anfang Variablen
  // Ende Variablen
  // Anfang Ereignisprozeduren
public static void main(String[] args) {
String ausgabe;
double x;
double kurs = 0.5;
double offen;
int kugel;
// Die Werte für ’geld’ und ’offen’ bitte variieren...

JTextField[] feld ={new JTextField()};
Object[] msg = {"Wie viel Kohle hast du den?", feld [0]};
(new JOptionPane(msg)).createDialog(null, "Kugelberechnung").setVisible(true);

x = Double.parseDouble( feld[0].getText());
if (x>=0.5){



kugel = x / kurs;
ausgabe = "Du bekommst" + kugel+ "für dein geld";
}
else {
  ausgabe= "Dein Guthaben reicht leider nicht aus!";
}


}

}

Gruß
Micha
 

Wildcard

Top Contributor
Code:
kugel = x / kurs;
Bei einer Division kommt ein double raus. Weißt du eine double einem int zu verlierst du Informationen.
Der Compiler erwartet von dir einen expliziten cast damit dir klar wird das du hier Informationen verwirfst.
Code:
kugel = (int)x / kurs;
 
M

Micha34343

Gast
Thx!

Ich weiß war ne simplne Sache für dich,aber ich kam da nicht drauf :( Ich glaube dies passiert auch den Profis die programmieren ;)


Gruß
Micha
 

Wildcard

Top Contributor
Micha34343 hat gesagt.:
Ich glaube dies passiert auch den Profis die programmieren ;)
Sowas kommt schon mal vor, aber deshalb gibt's in Java ja sehr aussagekräftigen Fehlermeldungen, man muss sie nur lesen lernen :wink:
 
M

Micha34343

Gast
Hallo!

Hab noch ne kleine Frage: Ich mein Programm soweit erweitert wollte es,aber ein wenig optimieren. ;) Wollte das die Kugel ganz ausgegeben werden also, wenn der User 0,8 ein gibt soll ihm erscheinen,dass er nur eine Kugel bekommt und nicht 1,6! Eigentlich müsste ich doch die Variable Kugel in Int wieder parsen oder??? Hier nochmal mein Meisterwerk ;)

Code:
import javax.swing.*;


public class EisLogik {

public static void main(String[] args) {
String ausgabe;
double x;
double kurs = 0.5;
double kugel;


JTextField[] feld ={new JTextField()};
Object[] msg = {"Wie viel Kohle hast du den?", feld [0]};
(new JOptionPane(msg)).createDialog(null, "Kugelberechnung").setVisible(true);


x = Double.parseDouble( feld[0].getText().replace(",", ".") );
if (x>=0.5){



kugel = x / kurs;
ausgabe = "Die Eisdiele ist geöffnet! Du bekommst " + kugel+ " Kugeln für dein Geld! :)";
}
else {
  ausgabe= "Die Eisdiese ist geschlossen und ausserdem, dein Guthaben reicht leider nicht aus! :(";
}


JOptionPane.showMessageDialog(null,ausgabe);
System.exit(0);
}
}
 
S

SlaterB

Gast
tja man kann eingentlich wieder nur die gleiche Antwort geben:

kugel = (int)(x / kurs);

-------

kugel = Math.floor(x / kurs);
würde es wohl auch tun
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben