如何在保持显示位数的同时向左移动小数点?

时间:2019-02-02 02:59:54

标签: c++ floating-point decimal setw

我目前有一个函数,它接受结构的向量,包括所有浮点数,并且应该在简单计算后返回一些值。

我的cout函数很简单

void taxPrint(std::vector<TaxPayer> &citizen)
{
    int loops = 0;

    std::cout << "\nTaxes due for this year: \n" << std::endl;

    do
    {
        std::cout << "Tax Payer #" << loops << " : $" << citizen[loops].taxes << std::endl;
        loops++;
}
while (loops + 1 <= SIZE);

,控制台中的输出为

Tax Payer #0 : $450000
Tax Payer #1 : $210000

那是我想要的

Tax Payer #0 : $4500.00
Tax Payer #1 : $2100.00

我一直在使用setw()和setprecision(),但是我不完全了解它们的工作原理。

1 个答案:

答案 0 :(得分:0)

std::setw实际上与值精度没有任何关系,它用于填充前缀为001-0123-9124的字符串(用{ {1}})

示例0将显示 00005

以下是如何使用std::fixedstd::setprecision来使用它:

std::cout << std::setfill('0') << std::setw(5) << 5 << std::endl;

另外,请查看this问题,以了解有关为值指定固定精度的更多信息...