我想知道什么值导致cpp_dec_float溢出。我尝试了1000万的伽玛函数,但仍然可以存储很大的数量。但是,无法存储1100万的伽马。
答案 0 :(得分:0)
您可以使用::max()
函数来查找可以存储的最大值(另请参见the boost docs on multiprecision和on numeric_limits)。以cpp_dec_float_50
为例:
#include <boost/multiprecision/cpp_dec_float.hpp>
#include <iostream>
#include <limits>
using boost::multiprecision::cpp_dec_float_50;
int main() {
std::cout.precision(std::numeric_limits<cpp_dec_float_50>::digits10);
std::cout << std::numeric_limits<cpp_dec_float_50>::max() << std::endl;
}
关于导致溢出的原因,您可能还会发现this question感兴趣。