Hey Leute.
Ich bin gerade dabei einen grafischen Taschrenrechner zu probrammieren und verwende durchgängig double. Jetzt taucht aber an folgender Stelle ein fehler auf:
(Die Variable "ergebnis" ist in double geschrieben. Ich hoffe das reicht an Code.)
An der mit Zahlen makierten Stellen wird bei der Aufgabe "8/2" folgendes Ergebnis ausgegeben:
1 = 0.0
2 = 2.0
3 = 0.0
Ich weiß schon, dass in der Zeile zwischen 2 und 3 erst ein Integer ausgerechnet wird, welcher dann auf die double- variable "ergebnis" übertragen, dann aber abgerundet wird. Ich hab auch schon gelesen, dass das durch sogenanntes Casting behoben werden kann, aber das was ich probiert habe, hat nicht funtioniert und ich habe das Prinzip auch noch nicht wirklich verstanden.
Über Ideen und Lösungsvorschläge wäre ich sehr dankbar!
Lg
Ich bin gerade dabei einen grafischen Taschrenrechner zu probrammieren und verwende durchgängig double. Jetzt taucht aber an folgender Stelle ein fehler auf:
Java:
if (operator.equals("+")) {
ergebnis = ergebnis + Double.valueOf(jTextField1.getText().replace(",", "."));
System.out.println("Ergebnis:"+ergebnis);
} else if (operator.equals("-")) {
ergebnis = ergebnis - Double.valueOf(jTextField1.getText().replace(",", "."));
} else if (operator.equals("*")) {
ergebnis = ergebnis * Double.valueOf(jTextField1.getText().replace(",", "."));
} else if (operator.equals("/")) {
System.out.println(ergebnis); //1
System.out.println(Double.valueOf(jTextField1.getText().replace(",", "."))); //2
ergebnis = ergebnis / Double.valueOf(jTextField1.getText().replace(",", "."));
System.out.println(ergebnis); //3
}
jTextField1.setText(String.valueOf(ergebnis).replace(".", ","));
ergebnis = 0;
An der mit Zahlen makierten Stellen wird bei der Aufgabe "8/2" folgendes Ergebnis ausgegeben:
1 = 0.0
2 = 2.0
3 = 0.0
Ich weiß schon, dass in der Zeile zwischen 2 und 3 erst ein Integer ausgerechnet wird, welcher dann auf die double- variable "ergebnis" übertragen, dann aber abgerundet wird. Ich hab auch schon gelesen, dass das durch sogenanntes Casting behoben werden kann, aber das was ich probiert habe, hat nicht funtioniert und ich habe das Prinzip auch noch nicht wirklich verstanden.
Über Ideen und Lösungsvorschläge wäre ich sehr dankbar!
Lg