Неограниченная точность и заданное округление и масштаб с помощью строкового конструктора
С Java BigDecimal
, возможно иметь неограниченную точность и заданное округление и масштабирование с помощью строкового конструктора.
Я видел GMP GMU, мультипрецизионность Boost и MPFR, но, похоже, ни у одного из них нет этих характеристик.
Может ли кто-нибудь из них сделать это? Если так, то как? Если нет, как это можно сделать?
1 ответ
Решение
GMP разработан для обеспечения произвольной точности с поддержкой C++ с использованием gmpxx.h
заголовок и соответствующая библиотека. Если вы строите GMP с нуля, используйте --enable-cxx
флаг во время настройки.
Чтобы построить объект из std::string
просто используйте конструктор, например,
#include <gmpxx.h>
const std::string longNumber = "12345678901234567890";
mpz_class n(longNumber);
Более подробная информация доступна здесь