支持分数的大数字

dut*_*utt 4 c# numeric

我需要ac#number可以处理非常大的数字,但也需要分数支持,我看了.NET 4.0中的System.Numberics.BigInteger,但我不能让它与分数一起工作.

something i = 2;
something j = 5;
something k = i/j; //should be 0.4
Run Code Online (Sandbox Code Playgroud)

当我试着

 BigInteger i = 2;
 BigInteger j = 5;
 double d = (double)(i/j); //d is 0.0
Run Code Online (Sandbox Code Playgroud)

有人知道这样的图书馆吗?

Tom*_*cek 10

F#PowerPack包含数字类型BigRational.它是用F#实现的,专为F#设计,但该类型也应该可以从C#中完全使用(包括重载运算符和类似的东西).PowerPack是一个具有额外F#功能的附加库,因此它不是.NET框架的一部分,但它是Microsoft支持的产品.

BigRational类型支持所有基本运算符(+, /, -, *, >, <, >=, <=, ==, !=),我相信它会自动保持数字的正常形式.如果您将数字表示为两个BigInteger值,则必须实现比较,使1/2等于2/4.