Использование библиотек J #:
Загрузите распространяемый J # , чтобы получить библиотеки классов J #. Эта статья намекает о том, как использовать ее для получения возможности ZIP в ваших проектах .NET, и объясняет немного о BigDecimal, но, как объяснил Ramhound, статья довольно старая.
После загрузки добавьте vsjlib
в ваш проект. Он не работал для меня на .NET 4.0, но он работал на проекте 2.0. Среди прочего, он содержит класс BigDecimal. Однако не уверен, что это даст вам до 100 знаков после запятой, но вы можете попробовать.
Использование MPIR - Multi Precision Integer и Rationals
Вы можете загрузить оболочку для библиотеки MPIR для .NET здесь (скачать версию 0.2) . Затем выполните следующие действия:
- Добавьте файлы
\wrapper.*.dll
в свой проект, убедитесь, что на каждой сборке они скопированы в каталог Debug или Release.
- Добавить
\wrapper\xmpir.cs
в ваш проект
Добавьте следующий код в ваш проект:
// set the precision to 512 bits (adjust this to your needs)
mpir.mpf_set_default_prec(512);
ulong default_prc = mpir.mpf_get_default_prec();
// init vars (important!)
mpir.mpf_t val = mpir.mpf_init_set_d(.5);
mpir.mpf_t result = mpir.mpf_init_set_ui(0);
// calculate 0.5^200
mpir.mpf_pow_ui(result, val, 200);
double dresult = mpir.mpf_get_d(result);
// convert result to a string, in the form 1.2345 (dot not in output) and exp holding exponent
long exp;
string sresult = mpir.mpf_get_string(out exp, 10, 0, result);
// free vars (important!)
mpir.mpf_clear(val);
mpir.mpf_clear(result);
Обратите внимание, что переменная sresult
будет содержать только значащие цифры. Вам также нужно будет добавить логику для печати показателя степени или связки нулей.
Результат 6.2230152778611417071440640537801242405902521687211671331011166147896988340353834411839448231257136169569665895551224821247160434722900390625E-60
A документация PDF-файл в полной библиотеке MPIR показывает, как использовать его более подробно.