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仅消除.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 打印 pi 时,它仍然保留小数点,可能是因为没有它就失去了精度。

我可能只是在这里手动进行一些字符串操作,因为我看到的所有字符串流选项似乎都没有做你想要的。

于 2012-07-20T20:13:17.077 回答