我正在尝试使用以下代码将 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
仅消除.0
整数浮点数的尾随,例如60.0
输出为60
,它不会简单地删除所有数字上的点。
要得到你想要的,你可以这样做:
float price = 67.5;
std::stringstream symbol;
symbol << std::setfill('0') << std::setw(6) << int(100 * price);
看起来您正在尝试使用 noshowpoint 删除小数点,但如果您查看此处的示例,您会发现当使用 noshowpoint 打印 pi 时,它仍然保留小数点,可能是因为没有它就失去了精度。
我可能只是在这里手动进行一些字符串操作,因为我看到的所有字符串流选项似乎都没有做你想要的。