我试着用下面的代码把67.5as 006750写成:
float price = 67.5
stringstream symbol;
symbol << setfill('0') << setw(6) << fixed << setprecision(2)
<< noshowpoint << price;但产出是067.50
发布于 2012-07-21 04:10:09
你弄糊涂了。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-21 04:13:17
看起来您正在尝试使用noshowpoint来删除小数,但是如果您查看示例here,您会发现当使用noshowpoint打印pi时,它仍然保留小数,这可能是因为您在没有它的情况下失去了精度。
我可能会在这里手工操作一些字符串,因为我看到的stringstream选项似乎都不能满足您的要求。
https://stackoverflow.com/questions/11586287
复制相似问题