Question

I'm reviving this question, and making it more specific: Is there a .NET framework library that supports numbers with arbitrary digits of precision?

Was it helpful?

Solution

There are a few options here.

A good option is W3b.Sine, which is native C#/.NET, and supports arbitrary precision floating point values.

If you are only dealing with integer values, IntX provides support for arbitrary precision integer values. A potentially more mature option would be C# BigInt, but again, this will not support floating point operations.

OTHER TIPS

Can you wait for .NET 4.0? They're bringing BigInteger directly into the Framework.

On the other hand, if you can't wait, then the J# runtime includes built-in support for java.math.BigInteger and BigDecimal. This is redistributable just like the rest of the .NET Framework.

You could try the old method of mantissa. Basically you could have an 64 bit integer for storing the number and then a 64 bit integer for storing the exponent (which could be negative). You could build your own object type and overload the arithmetic operators, so it will be treated as a single number. It will require some work, but I think it will be your best option.

GnuMpDotNet: http://www.emilstefanov.net/Projects/GnuMpDotNet/

If you need pure .NET consider looking into this: http://www.codeplex.com/IntX/

Perhaps surprisingly, the Bailey-Borwein-Plouffe formula gives an incremental procedure for computing the next binary or hexadecimal digit of pi without needing to store all the previous digits.

If you want a really fast library then try:

http://www.emilstefanov.net/Projects/GnuMpDotNet/

You can use decimal type which gives you 28-29 significant digits

Check this link http://jsfromhell.com/classes/bignumber its a javascript code but you can easily convert it to your own in any language or in C#.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top