Как узнать повторяющуюся десятичную дробь?

Я уже знаю, когда дробь повторяет десятичные дроби. Вот функция.

public bool IsRepeatingDecimal
{
    get
    {
        if (Numerator % Denominator == 0)
            return false;

        var primes = MathAlgorithms.Primes(Denominator);

        foreach (int n in primes)
        {
            if (n != 2 && n != 5)
                return true;
        }

        return false;
    }
}

Теперь я пытаюсь получить повторный номер. Я проверяю этот веб-сайт:http://en.wikipedia.org/wiki/Repeating_decimal

public decimal RepeatingDecimal()
{
    if (!IsRepeatingDecimal) throw new InvalidOperationException("The fraction is not producing repeating decimals");

    int digitsToTake;
    switch (Denominator)
    {
        case 3:
        case 9: digitsToTake = 1; break;
        case 11: digitsToTake = 2; break;
        case 13: digitsToTake = 6; break;
        default: digitsToTake = Denominator - 1; break;
    }

    return MathExtensions.TruncateAt((decimal)Numerator / Denominator, digitsToTake);
}

Но я действительно понял, что некоторые числа имеют частичную десятичную конечную, а затем бесконечную. Например: 1/28

Знаете ли вы лучший способ сделать это? Или Алгоритм?

Ответы на вопрос(4)

Ваш ответ на вопрос