Десятичное в дробное преобразование в Swift

Я строю калькулятор и хочу, чтобы он автоматически конвертировал каждое десятичное число в дробь. Таким образом, если пользователь вычислит выражение, для которого ответом будет «0,333333 ...», он вернет «1/3». Для «0,25» он вернул бы «1/4». Используя GCD, как показано здесь (Десятичное в дробное преобразование), Я выяснил, как преобразовать любой рациональный, заканчивающий десятичную дробь в десятичную, но это не работает для любой повторяющейся десятичной дроби (например, .333333).

Любая другая функция для этого при переполнении стека находится в Objective-C. Но мне нужна функция в моем быстром приложении! Так что переводная версия этого (https://stackoverflow.com/a/13430237/5700898) было бы здорово!

Любые идеи или решения покак преобразовать рациональную или повторяющуюся / иррациональную десятичную дробь в дробь (то есть конвертировать "0.1764705882 ..." в 3/17) было бы здорово!