boost::formatを使っててdoubleの桁数が足りないなと思うことがあって(緯度・経度を保存しておくとかで)、stringstreamでstd::setprecisionを使ってたりしたのですが、どうやらboost::formatでもマニピュレータを使えるようです。
boost::io::groupを使って、マニピュレータと値を組み合わせて指定します。
#include <iostream> #include <iomanip> #include <boost/format.hpp> #include <boost/math/constants/constants.hpp> int main() { std::cout << boost::format("%1%") % boost::io::group(std::setprecision(8), boost::math::constants::pi<double>()) << std::endl; }
3.1415927
【参照】
Manipulators, and internal stream state