Если бы я был на вашем месте, я бы справился с проблемой "нет повторяющихся десятичных знаков в .NET", если бы он преобразовывал строки с повторением, помеченным каким-либо образом.
например. 1/3 можно представить как «0.R3»
1/60 можно представить как «0,01R6»
Я бы потребовал явного приведения из двойного или десятичного числа, потому что такие значения можно было преобразовать только в дробную часть, которая была близка. Неявное приведение от int в порядке.
Вы можете использовать структуру и хранить свою дробь (f) в двух длинных p и q, таких что f = p / q, q! = 0 и gcd (p, q) == 1.