私は67.5を006750として以下のコードで書き込もうとしています:
float price = 67.5
stringstream symbol;
symbol << setfill('0') << setw(6) << fixed << setprecision(2)
<< noshowpoint << price;
しかし、出力は067.50です
私は67.5を006750として以下のコードで書き込もうとしています:
float price = 67.5
stringstream symbol;
symbol << setfill('0') << setw(6) << fixed << setprecision(2)
<< noshowpoint << price;
しかし、出力は067.50です
あなたが混乱しています。std::noshowpoint
整数floatの末尾.0
を削除するだけです。たとえば、60.0
として出力され60
ます。すべての数値のポイントを削除するだけではありません。
あなたが望むものを手に入れるためにあなたはこれをすることができます:
float price = 67.5;
std::stringstream symbol;
symbol << std::setfill('0') << std::setw(6) << int(100 * price);
noshowpointを使用して小数を削除しようとしているように見えますが、ここの例を見ると、円周率がnoshowpointで印刷された場合でも、小数がないと精度が低下したためか、小数が保持されていることがわかります。
私が見た文字列ストリームオプションはどれもあなたが望むことをしていないように見えるので、私はおそらくここでいくつかの文字列操作を手作業で行うでしょう。