Das Programm soll Dezimalzahlen in Brüche Umwandeln und Kürzen. Beim Umwandeln hat sich irgendwo ein Fehler eingeschlichen und das Kürzen funktioniert leider nicht. Vielleicht kann mir jemand einen Tipp geben. Danke!
Arguments: parseDouble "-0.5 1.25 3.42 0.0"
Ausgabe: -50/100;125/100;341/100;0/1;
Erwartete Ausgabe: -1/2;5/4;171/50;0/1
Arguments: parseDouble "-0.5 1.25 3.42 0.0"
Ausgabe: -50/100;125/100;341/100;0/1;
Erwartete Ausgabe: -1/2;5/4;171/50;0/1
Java:
public static String parseToString(double[] werte) {
double[] eingabe = new double[werte.length];
int laenge = eingabe.length;
String ausgabe = "";
double zaehler = 0;
int ganze, gesamtzaehler = 0, nenner = 100, a, b;
for (int i = 0; i < laenge; i++) {
ganze = (int) werte[i];
zaehler = (int)(100 * (werte[i] - ganze));
gesamtzaehler = (int)(ganze * 100 + zaehler);
a = gesamtzaehler;
b = nenner;
int ggt = 1;
for (int k = 100; k > 1; k--) {
if ((a % k) == 0 && (b % k) == 0) {
ggt = k;
} else {
ggt = 1;
}
}
gesamtzaehler = gesamtzaehler / ggt;
nenner = nenner / ggt;
if (gesamtzaehler == 0) {
nenner = 1;
}
ausgabe = ausgabe + (gesamtzaehler) + "/" + (nenner) + ";";
}
return ausgabe;
}
}