Какие стандартные библиотеки? Для расчётов с хорошей практической точностью вещественные типы float, double, а тем более long double вполне годятся. А если надо что-то ещё, например, особо точные представления чисел, тогда конечно надо пользоваться чем-либо типа модулей gmp или mpfr. Вот пример расчёта ограниченных сумм гармонического ряда Σ(k=1;n)1/k: #include
#include
#include
using namespace std;
mpz_class Euclid(mpz_class x, mpz_class y)
{
mpz_class z;
while (true)
{
z = x % y;
if (z == 0) return y;
else { x = y; y = z; }
}
}
void print(int i, mpz_class x, mpz_class y)
{
mpz_class z; z = x / y;
cout
Нет, стандартные библиотеки достаточно точны для стандартных задач. Если же вашей задачи "точности" не хватает - значит либо
1) Ваша задача не стандартная - имеет смысл рассмотреть использование нестандартных библиотек.
2) Вы что-то делаете не так.
А вот использование того же boost просто для точности зачастую выглядит как стрельба из пушки по воробьям. Для тех же "нестандартных" задач зачастую существуют специализированные библиотеки, предлагающие в рамках заданного контекста куда более эффективные решения, чем буст из-за его обобщенности.