Dezimal in Bruch umwandeln in Swift

Ich baue einen Taschenrechner und möchte, dass er jede Dezimalstelle automatisch in einen Bruch umwandelt. Wenn der Benutzer also einen Ausdruck berechnet, für den die Antwort "0,333333 ..." lautet, wird "1/3" zurückgegeben. Für "0.25" würde es "1/4" zurückgeben. Mit GCD, wie hier zu finden Dezimal in Bruchzahl umwandeln), Ich habe herausgefunden, wie man eine rationale, endende Dezimalstelle in eine Dezimalstelle umwandelt, aber dies funktioniert nicht bei jeder sich wiederholenden Dezimalstelle (wie .333333).

Jede andere Funktion für diesen Stapelüberlauf befindet sich in Objective-C. Aber ich brauche eine Funktion in meiner schnellen App! Also eine übersetzte Version von diesem https: //stackoverflow.com/a/13430237/570089) wäre nett

Irgendwelche Ideen oder Lösungen auf wie man eine rationale oder sich wiederholende / irrationale Dezimalzahl in einen Bruch umwandelt (d. h. "0.1764705882 ..." in 3/17 konvertieren) wäre großartig!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage