Мне нужно преобразовать десятичные значения в их дробные эквиваленты, аналогично этому предыдущий вопрос .
Я использую код, размещенный в одном из ответов, в качестве отправной точки, поскольку он в основном делает то, что мне нужно.
string ToMixedFraction(decimal x) {
int whole = (int) x;
int denominator = 64;
int numerator = (int)( (x - whole) * denominator );
if (numerator == 0)
{
return whole.ToString();
}
while ( numerator % 2 == 0 ) // simplify fraction
{
numerator /= 2;
denominator /=2;
}
return string.Format("{0} {1}/{2}", whole, numerator, denominator);
}
Как я уже сказал, по большей части этот код работает нормально, но мне нужно взять общие повторяющиеся десятичные значения (.3333333) и отобразить их пользователю как 1/3.
Кто-нибудь знает, как это можно сделать?