1

我有以下难题。在 C# 中,我想存储一个有理数并获得它的十进制表示法的字符串表示。

通常我只会使用floatdouble存储数字并获取字符串,但我想要一个“高分辨率”十进制表示法。double数据类型在它的字符串表示中最多只能提供大约 16 个字符。我正在寻找十进制表示法的字符串表示以包含更多字符,大约 30-50 是理想的。我需要“高分辨率”来检查重复的子序列。

有理数可能很简单,但我希望字符串表示非常详细

示例:1/7=>0.1428571428571428571428571428

我的问题: .NET 库中是否有 C# 数据结构可以存储和打印我上面描述的有理数?

4

2 回答 2

3

类库的 CodePlex 站点包含一个BigRational 类型,它提供“任意精度的有理数类型”。这应该提供您希望的细节和精度。

于 2012-08-28T05:21:16.067 回答
0

我能找到的唯一使用此功能的现有工作是Ken Johnson 提供Rational类。

这是一个实现您想要的示例:

[TestMethod]
public void FormatsAsDecimal()
{
    var oneSeventh = new Rational(1, 7);
    var oneSeventhAsDecimal = oneSeventh.ToString(EApproxmationType.DecimalPlaces, 28, true);
    oneSeventhAsDecimal.Should().Be("0.1428571428571428571428571428");
}
于 2013-12-05T04:46:51.467 回答