Brüche, Fließkommazahlen

Status
Nicht offen für weitere Antworten.

SirAndy

Mitglied
Hallo!

Ich habe folgendes Problem:
Ich will den Bruch 4/3 (vier Drittel) darstellen, als Ausgabe folgt trotz Verwenudung von float oder double immer 1.0!
Was habe ich falsch gemacht?
Code:
import javax.swing.JOptionPane;

class division2 {

public static void main(String[] args) {
double e;
int b=3;

e=4/b;

JOptionPane.showMessageDialogdouble (null, " Ergebnis: "+ e);

System.exit (0);
}
}

Hier ist der Code!
 
B

bygones

Gast
du darfst nicht int b schreiben....

nimm entweder double b oder float b

PS: Bin mir nicht sicher, aber Java hätte doch da wegen LostOfPrecision oder so meckern müssen.... ???!!
 

Stefan1200

Top Contributor
deathbyaclown hat gesagt.:
PS: Bin mir nicht sicher, aber Java hätte doch da wegen LostOfPrecision oder so meckern müssen.... ???!!

In diesem Fall nicht, denn 4 / 2 wäre eine vernünftige Rechnung, und das Ergebniss lässt sich einfach als Double speichern.

Du kannst auch ein Integer in einen Bruch teilen, aber dazu muss Java wissen, das er zwei Integer Werte rechnen muss wie ein Double. Wenn Java nur zwei Integer Werte sieht, rechnet er mit Ganzzahlen, was zu Rundungsfehlern führt.

Ändere die Zeile "e=4/b;" wie folgt:

Code:
e = (double)4 / (double)b;

So sollte das funzen.

Natürlich macht es in den meisten Fällen mehr sinn, die Variable b bereits als Double zu haben, bzw. die 4 als 4.0 zu schreiben, dann könnte man das "(double)" weg lassen. Aber manchmal lässt sich das nicht vermeiden.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben