Кто делает недесятичные числа с плавающей точкой отсчета? - PullRequest
1 голос
/ 05 апреля 2009

Как бы ни были хороши библиотеки Tcl math :: bignum и math :: bigfloat, необходимо найти золотую середину между ними. А именно, бигнумы, которые находятся в разных значениях радиуса и имеют точку радиуса .

В настоящее время math :: bignum обрабатывает только целые числа (afaict), а math :: bigfloat не позволяет указывать различные значения радиации для math :: bigfloat :: fromstr (ditto).

Кто-нибудь знает библиотеку для любого из основных языков сценариев (например, Tcl, Perl, Python, Ruby, Lua) или менее важных (например, для newLISP), которая реализует bignums в разных направлениях с обработкой для radix point

Ответы [ 3 ]

1 голос
/ 16 ноября 2012

bignumber.js - это библиотека Javascript, которая обрабатывает числа с точкой отсчета в основаниях от 2 до 36.

0 голосов
/ 15 апреля 2009

Лучше всего использовать GMP (libgmp).

Я сам долго и трудно для версии .NET без везения.

0 голосов
/ 05 апреля 2009

Я не мог найти библиотек для этого, но долго не искал.

Но вы можете обойти эту проблему, как если бы вы хотели 64-битные типы данных, но доступны только 32-битные типы данных. Имея библиотеки, которые у вас уже есть, вы должны иметь возможность представлять число в базе b следующим образом:

 ABCDEF.GHIJKLMN

можно разделить на два значения: ABCDEF и GHIJKLMN. GHIJKLMN фактически представляет GHIJLMN / pow (b, длина (GHIJKLMN)) => GHIJKLM / pow (b, 8). Теперь вы можете переписать нужные вам операторы, что должно быть возможно для таких вещей, как +, -, *, /. Если вам нужно больше таких вещей, как sqrt, log или pow, этот обходной путь станет слишком сложным, и вам действительно нужно искать библиотеку.

...