Boost.Mathにある円周率を求める関数boost::math::constants::pi()ですが、単に定数を型Tにキャストして返すだけの実装だと思っていたら、実は違ったようです。定数で表現できる以上の桁数を要求された場合は、「ldexp(acos(T(0)), 1)」で計算するようになっていました(boost/math/constants/caluculate_constants.hpp)。 まず、組み込みの浮動小数点数型。これは単に定数が返されます。 #include <iostream> #include <boost/math/constants/constants.hpp> #include <boost/multiprecision/cpp_dec_float.hpp> namespace mp = boost::multiprecision; using boost: