Hi,
what should be the result of
template <int N>
void test1()
{
boost::io::ios_precision_saver ifs( std::cout );
using namespace boost::multiprecision;
mp_number
::max_digits10) << a << std::endl; }
test1<50>(); test1<100>(); test1<1>(); I'm getting N= 50 max_digits10= 80 sizeof= 64 0.333333 setprecision(N) 0.33333333333333333333333333333333333333333333333333 setprecision(max_digits10)= 0.33333333333333333333333333333333333333333333333333333333333333333333333333333333 N= 100 max_digits10= 128 sizeof= 88 0.333333 setprecision(N) 0.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 setprecision(max_digits10)= 0.33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 N= 1 max_digits10= 40 sizeof= 48 0.333333 setprecision(N) 0.3 setprecision(max_digits10)= 0.3333333333333333333333333333333333333333 Why the max_digits10 are not respectively 50,100 and 1? The single think in the documentation that could let think the number of digits to be greater than the parameter is the *should* word in the sentence "The class takes a single template parameter - |Digits10| - which is the number of decimal digits precision the type *should* support." Could the documentation be more precise? Is there a way to request for exactly N decimal digits to minimize the sizeof? Best, Vicente