Задача стоит такова, что в результате работы алгоритма получается число с большим количеством знаком после запятой (порядка 300, может больше), а с ним еще всяческие операции производить надо. Ясно, что стандартного double тут не хватит. Попробовал boost::multiprecision::cpp_dec_float_100, но его точности тоже оказалось недостаточно. Также попробовал библиотеку MPIR, но это...
...выглядит страшно, а что важнее, не запускается. Плюсом ко всему эту работу мне потом объяснять другому человеку, поэтому такое замудреное решение мне использовать нежелательно... Есть ли еще какие-то варианты где я мог бы получить неограниченную точноть? Может есть какие-то библиотеки на векторах? А то писать такое самому уж больно не хочется...
В C++ стандартный тип данных `float` обычно представляет число с ограниченной точностью и не предоставляет неограниченную точность. Однако, существуют библиотеки и инструменты, которые могут помочь вам работать с числами большой точности.
Одним из таких инструментов является библиотека `boost::multiprecision`, которую вы уже упомянули. Она предоставляет типы данных с высокой точностью, но если `cpp_dec_float_100` не удовлетворяет вашим требованиям, то у нее есть другие варианты, такие как `cpp_dec_float_1000` или даже использование класса `cpp_dec_float` с указанным пользователем количеством десятичных разрядов.
Помимо этого, существуют и другие библиотеки для работы с высокой точностью, такие как `GMP` (GNU Multiple Precision Arithmetic Library) и `MPFR` (Multiple Precision Floating-Point Reliable Library), которые могут быть полезны для вашей задачи.
При использовании библиотек с высокой точностью обратите внимание на следующие аспекты:
1. Производительность: Работа с числами большой точности может быть значительно медленнее, чем с обычными типами данных. Убедитесь, что вы понимаете, какие требования к производительности у вас есть, и проведите тесты на производительность перед принятием решения.
2. Память: Использование чисел большой точности может потребовать большого объема памяти. Учитывайте это при проектировании своего алгоритма и проверьте, будет ли ваша система располагать достаточным объемом памяти.
3. Возможности библиотеки: Изучите документацию и возможности библиотеки, чтобы использовать ее функциональность наиболее эффективно и удовлетворить свои требования.
4. Реализация алгоритма: Иногда возможно оптимизировать алгоритм таким образом, чтобы требования к точности и количеству знаков после запятой были меньше. Используйте эти оптимизации, если это возможно, чтобы улучшить производительность вашего алгоритма.
Наконец, учтите, что при работе с высокой точностью может быть сложнее обрабатывать числа и выполнять математические операции, поэтому обязательно прочитайте и изучите документацию соответствующей библиотеки и посмотрите примеры использования, чтобы убедиться, что она подходит для вашей задачи. (Ответ нейронки)