Kann mir jemand erklären warum bei Eingabe eines double Wertes keine Ausgabe erscheint und bei einer int Eingabe schon?
bruch1.rational(14, 2) --> Richtig
bruch1.rational(14.2, 2.2) --> Fehler
bruch1.rational(14, 2) --> Richtig
bruch1.rational(14.2, 2.2) --> Fehler
Code:
public class Rational {
double zaehler;
double nenner;
// Konstruktor
void rational(double z, double n) throws Exception{
zaehler = z;
if (n <= 0) {
throw new Exception("Nenner mit 0 ist nicht erlaubt!");
} else {
nenner = n;
}
}
// Subtraktion
public Rational subtraktion(Rational bruch2) {
Rational ergebnis = new Rational();
ergebnis.zaehler = zaehler * bruch2.nenner - bruch2.zaehler * nenner;
ergebnis.nenner = nenner * bruch2.nenner;
return ergebnis.kuerzen();
}
// Ausgabe
public String toString() {
String Ausgabe = new String();
Ausgabe = zaehler + "/" + nenner;
return Ausgabe;
}
// Kürzen
private Rational kuerzen() {
double iGrößer, iKleiner, iErgebnis = 0;
boolean bStart = true;
Rational ergebnis = new Rational();
iGrößer = (nenner < zaehler ? zaehler : nenner);
if (iGrößer == nenner) {
iKleiner = zaehler;
} else {
iKleiner = nenner;
}
while (iErgebnis != iKleiner) {
if (!bStart) {
if (iKleiner < iErgebnis) {
iGrößer = iErgebnis;
} else {
iGrößer = iKleiner;
iKleiner = iErgebnis;
}
} else {
bStart = false;
}
iErgebnis = iGrößer - iKleiner;
}
ergebnis.zaehler = zaehler / iErgebnis;
ergebnis.nenner = nenner / iErgebnis;
return ergebnis;
}
}
Code:
public static void main(String[] args) throws Exception {
Rational bruch1 = new Rational();
Rational bruch2 = new Rational();
bruch1.rational(14, 2);
bruch2.rational(4, 2);
System.out.println("Ergebnis der Subtraktion beträgt: "
+ bruch1.subtraktion(bruch2));
}