Der einfachste Ansatz könnte sein, Versuch und Irrtum zu verwenden.
%Vor%druckt
%Vor%Schauen Sie in Kettenbrüche. Dies ermöglicht Ihnen, Nenner und Bruch innerhalb einer gegebenen Genauigkeit zu bestimmen.
Für Pi kannst du 22/7 oder 355/113 bekommen, abhängig davon, wann du aufhören willst.
Dies könnte hilfreich sein:
Sonst müssten Sie Convert () sagen, wie weit Sie die Dinge nehmen wollen. Vielleicht ein maximaler reduzierter Demonator oder so etwas. Auf diese Weise erhalten Sie "1 1/3" für beide der ersten zwei Beispiele, die Sie oben haben, anstatt "1 33333/100000" für die erste und "1 333/1000" für die zweite.
Extrahiere den Bruchteil der Zahl (zum Beispiel ((int) 0.5 + 1) - 0.5
, dann dividiere eins durch das Ergebnis ( 1 / 0.5
). Du bekommst den Nenner des Bruches. Dann wirf den float auf einen int und du werde den ganzzahligen Teil erhalten und dann beide verketten.
Es ist nur eine einfache Lösung und funktioniert nur, wenn der Zähler des Bruches 1 ist.
%Vor%Die FOR-Schleife wurde modifiziert, um die Schleife zu unterbrechen, wenn der beste Nenner bereits identifiziert wurde.
if (Fehler2 == 0) Pause;
%Vor%Tags und Links string java floating-point fractions