double を固定幅の文字列に変換したい。
幅が 10 の場合、double 値をこの幅に丸める必要があります。
たとえば、値 = 102.121323435345 で幅が 10 の場合、この値は次のようになります。
位置==> 0123456789 値 = 102.121323
snprintf でこれを実現できますが、同じことを行う C++ ネイティブ コードを探しています。
char buf[125];
snprint(buf, width, "%.6f", value);
以下を使用しようとしましたが、あまり役に立ちません。
std::ostringstream oss;
oss << std::fixed << std::setw(10) << std::precision(6) << value;
std::setw は、値の最小幅を保証し、値が幅のサイズを超える場合、値を丸めません。
ありがとう。