
C/C++
Как получить неограниченную точность для float c++
Задача стоит такова, что в результате работы алгоритма получается число с большим количеством знаком после запятой (порядка 300, может больше), а с ним еще всяческие операции производить надо. Ясно, что стандартного double тут не хватит. Попробовал boost::multiprecision::cpp_dec_float_100, но его точности тоже оказалось недостаточно. Также попробовал библиотеку MPIR, но это...
...выглядит страшно, а что важнее, не запускается. Плюсом ко всему эту работу мне потом объяснять другому человеку, поэтому такое замудреное решение мне использовать нежелательно... Есть ли еще какие-то варианты где я мог бы получить неограниченную точноть? Может есть какие-то библиотеки на векторах? А то писать такое самому уж больно не хочется...

вам требуется вероятно
cpp_dec_float<300> (число в шаблоне указывает на число значимых разрядов)
вместо
cpp_dec_float_100 (то же самое что cpp_dec_float<100> )
cpp_dec_float<300> (число в шаблоне указывает на число значимых разрядов)
вместо
cpp_dec_float_100 (то же самое что cpp_dec_float<100> )
глупости, безо всякого практического применения...
маткад
загугли
"c++ длинная арифметика"
эта тема сто тысяч раз пережевана интернетом.
"c++ длинная арифметика"
эта тема сто тысяч раз пережевана интернетом.
В 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. Реализация алгоритма: Иногда возможно оптимизировать алгоритм таким образом, чтобы требования к точности и количеству знаков после запятой были меньше. Используйте эти оптимизации, если это возможно, чтобы улучшить производительность вашего алгоритма.
Наконец, учтите, что при работе с высокой точностью может быть сложнее обрабатывать числа и выполнять математические операции, поэтому обязательно прочитайте и изучите документацию соответствующей библиотеки и посмотрите примеры использования, чтобы убедиться, что она подходит для вашей задачи. (Ответ нейронки)
Одним из таких инструментов является библиотека `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. Реализация алгоритма: Иногда возможно оптимизировать алгоритм таким образом, чтобы требования к точности и количеству знаков после запятой были меньше. Используйте эти оптимизации, если это возможно, чтобы улучшить производительность вашего алгоритма.
Наконец, учтите, что при работе с высокой точностью может быть сложнее обрабатывать числа и выполнять математические операции, поэтому обязательно прочитайте и изучите документацию соответствующей библиотеки и посмотрите примеры использования, чтобы убедиться, что она подходит для вашей задачи. (Ответ нейронки)
Айваз Ахмедов
Если бы чатгпт мне помог, я бы не писал людям
Похожие вопросы
- Вычислить сумму бесконечного ряда c точностью e=0.0001
- C++. Бинарный поиск. Объясните работу данной программы. Найдите такое число x, что , с точностью не менее 6 зн.С while
- [ C ] Что делать, если точности clock() не хватает?
- Определение числа в строке int или float
- Поясните за float, double, long double.
- Какие из этих книг вы посоветуете прочесть в первую очередь чтобы повысить свои знания в C/C++?
- Получить имена полей класса c++
- Задача по C++
- День добрый \[-_-]/ вопрос по вузовскому программированию на си(C)
- Программирование C++ ПРОШУ ПОМОЧЬ!