我正在尝试将67.5写为006750,代码如下:
float price = 67.5
stringstream symbol;
symbol << setfill('0') << setw(6) << fixed << setprecision(2)
<< noshowpoint << price;
但输出为067.50
答案 0 :(得分:2)
std::noshowpoint
仅消除整数浮点数上的尾随.0
,例如60.0
输出为60
,它不会简单地删除所有数字上的点。
要获得你想要的东西,你可以这样做:
float price = 67.5;
std::stringstream symbol;
symbol << std::setfill('0') << std::setw(6) << int(100 * price);
答案 1 :(得分:1)
看起来你正在尝试使用noshowpoint删除小数,但是如果你看一下示例here,你会看到当用noshowpoint打印pi时,它仍然保留小数,可能是因为没有它你就会失去精确度。
我可能只是在这里手工做一些字符串操作,因为我看到的所有字符串流选项都没有做你想要的。