Есть ли в C # поддержка арифметики произвольной точности?

Поддерживает ли C # арифметику произвольной точности (я думаю, это также называется bignums)?

Если нет, то какие библиотеки его поддерживают?


person Oztaco - Reinstate Monica C.    schedule 15.03.2012    source источник
comment
stackoverflow.com/questions/176775/big-integers-in -c-диез   -  person Serj-Tm    schedule 16.03.2012


Ответы (3)


Существует структура BigInteger, которая поддерживает целые числа произвольного размера.

http://msdn.microsoft.com/en-us/library/system.numerics.biginteger.aspx

Но ничего для чисел с плавающей запятой.

person Kendall Frey    schedule 15.03.2012
comment
BigInt не поддерживает произвольную точность, он поддерживает сколь угодно большие целые числа. Он поддерживает только целые числа. Если вам нужна произвольная точность, вам понадобится класс BigNum. - person zmbq; 16.03.2012

Вы уже нашли большое целое число; если вам нужны большие рациональные числа (то есть дроби, в которых числитель и знаменатель являются большими целыми числами), вы можете использовать класс Rational из библиотеки Solver:

http://msdn.microsoft.com/en-us/library/microsoft.solverfoundation.common.rational(v=vs.93).aspx

person Eric Lippert    schedule 15.03.2012

F # имеет тип BigNum в Microsoft.FSharp.Math.BigNum, вы также сможете использовать его из C #.

Этот тип существует в F # Powerpack. Загрузите его и укажите соответствующую DLL (я полагаю, это FSharp.Powerpack.Dll, но вам понадобится небольшой метод проб и ошибок).

person zmbq    schedule 15.03.2012
comment
fsharp sidnt отображается в intellisense, поэтому я поставил csharp вместо этого, и у него нет Microsoft.CSharp.Math.BigNum, и, как я уже сказал, Microsoft.FSharp ... не существует либо - person Oztaco - Reinstate Monica C.; 16.03.2012
comment
ах, спасибо, я добавил ссылку, и теперь я могу использовать Microsoft.FSharp существует, но не Mi..ft.FSharp.Math.BigNum? - person Oztaco - Reinstate Monica C.; 16.03.2012
comment
Это просто показывает, что мне не следует раздавать советы по F #, поскольку я начал их использовать только сегодня ... Это часть F # Powerpack. Подождите, я отредактирую еще раз. - person zmbq; 16.03.2012
comment
спасибо, но я только что нашел его в System.Numerics, просматривая intellisense - person Oztaco - Reinstate Monica C.; 16.03.2012