BigReal
An arbitrary size and precision rational number stored using two BigIntegers.
Usage
Create from fixed-size numbers:
Console.WriteLine(new BigReal(100)); // 100
Console.WriteLine((BigReal)3.14); // 3.14
Console.WriteLine(new BigReal(4, 3).ToString(4)); // 1.3333
Perform basic operations:
Console.WriteLine((BigReal)3 * (BigReal)5); // 15
Console.WriteLine(BigReal.Pow(3.4, 2)); // 11.56
Parse from string:
Console.WriteLine(BigReal.Parse("12.34")); // 12.34
Console.WriteLine(BigReal.Parse("2e2.5").ToString(2)); // 632.45
Performance
Basic operations comparing BigReal, BigDecimal, and BigFloat:
Add: 10 + 3
Divide: 10 / 3
DivideToString: (10 / 3).ToString()
| Method | Mean | Error | StdDev | Gen0 | Allocated |
|---|
| Add_BigReal | 22.792 ns | 0.0487 ns | 0.0432 ns | - | - |
| Add_BigDecimal | 216.776 ns | 0.8178 ns | 0.7650 ns | 0.0153 | 48 B |
| Add_BigFloat | 23.473 ns | 0.0593 ns |