我需要将十进制值转换为它们的小数等效值,类似于此previous question。格式重复小数作为分数
我使用发布在其中一个答案中的代码作为起点,因为它大部分都是我所需要的。
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);
}
正如我所说,这个代码工作正常的大部分,但我需要采取共同的重复十进制值(0.3333333),并显示给用户作为1/3。
有没有人碰巧知道这可能是怎么做到的?