设置小数点前的数字精度?

时间:2014-02-08 00:50:15

标签: c++ precision cout iomanip

我已经查看了这个thread,但如果我使用setfill('0'),则不会考虑使用负数。

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    //Code
    int num1;

    cin >> num1;

    cout << setw(5) << setfill( '0' ) << num1 << endl;

    return 0;
}

如果输入“5”,使用此方法将显示为“00005”。 但如果我输入-5,它将显示为“000-5”

如何修复它以使输出为“-0005”?

1 个答案:

答案 0 :(得分:4)

“填充字符”用于将字段填充到指定的宽度。默认情况下,这些字符会添加到左侧,以便输出 right 对齐。您可以使用std::left进行对齐。对于数字,附加选项std::internal将填充符号与实际数字之间的空格

cout << setw(5) << setfill('0') << internal << -42 << endl;

http://ideone.com/Pdsz3M