0

私は67.5を006750として以下のコードで書き込もうとしています:

 float price = 67.5
 stringstream symbol;
 symbol << setfill('0') << setw(6) << fixed << setprecision(2) 
        << noshowpoint << price;

しかし、出力は067.50です

4

2 に答える 2

2

あなたが混乱しています。std::noshowpoint整数floatの末尾.0を削除するだけです。たとえば、60.0として出力され60ます。すべての数値のポイントを削除するだけではありません。

あなたが望むものを手に入れるためにあなたはこれをすることができます:

float price = 67.5;
std::stringstream symbol;
symbol << std::setfill('0') << std::setw(6) << int(100 * price);
于 2012-07-20T20:10:09.487 に答える
1

noshowpointを使用して小数を削除しようとしているように見えますが、ここの例を見ると、円周率がnoshowpointで印刷された場合でも、小数がないと精度が低下したためか、小数が保持されていることがわかります。

私が見た文字列ストリームオプションはどれもあなたが望むことをしていないように見えるので、私はおそらくここでいくつかの文字列操作を手作業で行うでしょう。

于 2012-07-20T20:13:17.077 に答える