stringstream noshowpoint不起作用

时间:2012-07-20 20:07:02

标签: c++ stringstream

我正在尝试将67.5写为006750,代码如下:

 float price = 67.5
 stringstream symbol;
 symbol << setfill('0') << setw(6) << fixed << setprecision(2) 
        << noshowpoint << price;

但输出为067.50

2 个答案:

答案 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时,它仍然保留小数,可能是因为没有它你就会失去精确度。

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