@@ -16,7 +16,7 @@ Console.WriteLine(new BigReal(4, 3).ToString(4)); // 1.3333
1616Perform basic operations:
1717``` cs
1818Console .WriteLine ((BigReal )3 * (BigReal )5 ); // 15
19- Console .WriteLine (BigReal .Pow (3 . 4 , 2 )); // 11.56
19+ Console .WriteLine (BigReal .Pow (3 . 4 , 2 )); // 11.559999999999999
2020```
2121
2222Parse from string:
@@ -27,7 +27,7 @@ Console.WriteLine(BigReal.Parse("2e2.5").ToString(2)); // 632.45
2727
2828Trigonometry:
2929``` cs
30- Console .WriteLine (BigReal .Sin (100 ).ToString (20 )); // -0.50636564110975879365
30+ Console .WriteLine (BigReal .Sin (100 ).ToString (20 )); // -0.5063656411097587906
3131```
3232
3333## Performance
@@ -41,21 +41,21 @@ Basic operations comparing `BigReal`, [`BigDecimal`](https://github.com/AdamWhit
4141
4242| Method | Mean | Error | StdDev | Gen0 | Allocated |
4343| -------------------------- | --------------:| ------------:| ------------:| -------:| ----------:|
44- | Add_BigReal | 21.691 ns | 0.0874 ns | 0.0818 ns | - | - |
45- | Add_BigDecimal | 214.255 ns | 0.9779 ns | 0.9147 ns | 0.0153 | 48 B |
46- | Add_BigFloat | 23.496 ns | 0.0683 ns | 0.0639 ns | - | - |
47- | Divide_BigReal | 7.670 ns | 0.0221 ns | 0.0207 ns | - | - |
48- | Divide_BigDecimal | 26,478.999 ns | 96.2829 ns | 80.4006 ns | 7.0190 | 22016 B |
49- | Divide_BigFloat | 15.538 ns | 0.0551 ns | 0.0515 ns | - | - |
50- | DivideToString_BigReal | 17,104.758 ns | 84.1202 ns | 78.6861 ns | 1.6785 | 5272 B |
51- | DivideToString_BigDecimal | 26,800.138 ns | 133.3113 ns | 118.1770 ns | 7.1716 | 22520 B |
52- | DivideToString_BigFloat | 17,918.482 ns | 86.7425 ns | 81.1390 ns | 3.0212 | 9544 B |
53- | Parse_BigReal | 295.278 ns | 1.3559 ns | 1.2683 ns | 0.0124 | 40 B |
54- | Parse_BigDecimal | 211.807 ns | 1.1707 ns | 1.0951 ns | 0.0253 | 80 B |
55- | Parse_BigFloat | 335.903 ns | 1.2944 ns | 1.1475 ns | 0.0124 | 40 B |
56- | FromFloat_BigReal | 393.450 ns | 2.1953 ns | 1.9461 ns | 0.0229 | 72 B |
57- | FromFloat_BigDecimal | 316.437 ns | 1.3594 ns | 1.2715 ns | 0.0329 | 104 B |
58- | FromFloat_BigFloat | 1,779.366 ns | 4.8228 ns | 4.5113 ns | 0.2136 | 672 B |
44+ | Add_BigReal | 20.663 ns | 0.2319 ns | 0.2056 ns | - | - |
45+ | Add_BigDecimal | 196.293 ns | 0.7841 ns | 0.6951 ns | 0.0076 | 48 B |
46+ | Add_BigFloat | 21.373 ns | 0.1374 ns | 0.1148 ns | - | - |
47+ | Divide_BigReal | 7.021 ns | 0.0463 ns | 0.0433 ns | - | - |
48+ | Divide_BigDecimal | 23,632.775 ns | 76.0503 ns | 63.5055 ns | 3.5095 | 22016 B |
49+ | Divide_BigFloat | 14.317 ns | 0.0283 ns | 0.0251 ns | - | - |
50+ | DivideToString_BigReal | 1,190.507 ns | 4.9752 ns | 4.4103 ns | 0.0629 | 400 B |
51+ | DivideToString_BigDecimal | 24,023.287 ns | 181.1982 ns | 169.4929 ns | 3.5706 | 22520 B |
52+ | DivideToString_BigFloat | 16,281.624 ns | 72.3191 ns | 67.6473 ns | 1.4954 | 9544 B |
53+ | Parse_BigReal | 283.959 ns | 1.5225 ns | 1.3497 ns | 0.0062 | 40 B |
54+ | Parse_BigDecimal | 185.566 ns | 0.5260 ns | 0.4392 ns | 0.0126 | 80 B |
55+ | Parse_BigFloat | 304.154 ns | 0.9946 ns | 0.7765 ns | 0.0062 | 40 B |
56+ | FromFloat_BigReal | 106.022 ns | 0.5105 ns | 0.4775 ns | - | - |
57+ | FromFloat_BigDecimal | 275.546 ns | 0.7714 ns | 0.6441 ns | 0.0162 | 104 B |
58+ | FromFloat_BigFloat | 1,663.926 ns | 8.3387 ns | 7.8000 ns | 0.1068 | 672 B |
5959
6060Notes:
6161- Whereas ` BigDecimal ` divides by calculating the decimal digits at a certain precision, ` BigReal ` stores a fraction so the digits are only calculated at ` ToString ` .
0 commit comments