Если вы посмотрите на F # с точки зрения того, что он основан на OCaml, то у модуля OCaml Num есть power_num. Поскольку OCaml type num - это рациональные числа произвольной точности, они могут обрабатывать числа любого размера, например, они не ограничены регистром ЦП, потому что они могут выполнять математические операции символически. Кроме того, поскольку num определяется как
тип num =
| Int of int
| Big_int of Big_int.big_int
| Соотношение Ratio.ratio
они могут обрабатывать очень маленькие числа без потери точности из-за типа Ratio.
Поскольку F # не имеет типа num, Джек создал модуль FSharp.Compatibility.OCaml , который имеет num.fs и доступен через NuGet.
Таким образом, вы можете получить всю необходимую вам точность, и функции num могут обрабатывать отрицательные показатели.