我正在尝试使用以下代码将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);

关于c++ - stringstream noshowpoint不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11586287/

10-12 23:56