gpt4 book ai didi

c# - 将重复小数格式化为分数

转载 作者:行者123 更新时间:2023-11-30 20:14:24 26 4
gpt4 key购买 nike

我需要将十进制值转换为小数,类似于 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);
}

正如我所说,此代码在大多数情况下都可以正常工作,但我需要采用常见的重复十进制值 (.3333333) 并将其作为 1/3 显示给用户。

有没有人碰巧知道如何做到这一点?

最佳答案

来自 Link

以重复部分的位数为分子,取9重复位数相同的分数减去。

例如,.3 重复与 3/9 相同。通过将两侧除以 gcd(在本例中为 3)来减少,得到 1/3。

如果您可以从终止小数中提取重复小数,则需要做一些额外的数学运算,例如.133333333.

关于c# - 将重复小数格式化为分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/563137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com