相关疑难解决方法(0)

如何知道分数中的重复小数?

我已经知道一个分数是重复小数.这是功能.

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我正试图获得重复的数字.我正在查看这个网站: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: …
Run Code Online (Sandbox Code Playgroud)

c# algorithm class

12
推荐指数
2
解决办法
8230
查看次数

如何检测浮点数在C#中是否有重复的十进制扩展?

我只需要知道如何在浮点数中检测重复的十进制扩展.

例:

0.123456789123456789

该数字的重复部分为123456789.

我想用C#自动化这个,有没有智能解决方案?

c# math floating-point design-patterns period

9
推荐指数
2
解决办法
3429
查看次数

在C#中实现十进制.是否可以修改它以支持重复小数?

C#decimal类型存在此问题:

Console.WriteLine( 1m/3 + 1m/3 == 2m/3 );

False
Run Code Online (Sandbox Code Playgroud)

它只能在除以2或5时才能准确表示数字,否则结果可能是重复的十进制数.

正如Stack Overflow之前所提到的(C#Rational算术),实现了存储两个小数,分子和分母,并且完全执行乘法和除法的东西.它可以在需要时使用Euclid算法简化分数.还应实现一些显式转换为double或decimal.

这里这里提供一些合理的商数实现.还有一个Microsoft Solver Foundation结构Rational.

如何decimal在C#中实现,是否可以复制此实现并修改它以处理重复的 decimal s?

这里这里的 SO答案中有一些与重复小数相关的试验

c# math

0
推荐指数
1
解决办法
149
查看次数

标签 统计

c# ×3

math ×2

algorithm ×1

class ×1

design-patterns ×1

floating-point ×1

period ×1