C# BigInteger with Decimal outcome

890 views Asked by At

I'm trying to do calculations with huge numbers. for example:

22352794900029489130063309832192 / 1000000000000000000000000000000

I want the outcome to be 22.35279490 (preferred decimal), but if I use BigInteger the result gets rounded to 22.

Does .NET have something similar to an uint128?

What´s the best practise to do so?

1

There are 1 answers

2
Wyck On BEST ANSWER

To preserve precision, consider converting the BigInteger values to doubles first, then dividing after.

BigInteger a = BigInteger.Parse("22352794900029489130063309832192");
BigInteger b = BigInteger.Parse("1000000000000000000000000000000");
double da = (double)a;
double db = (double)b;
double result = da / db;