c++ - 设置小数点前数字的精度?

标签 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”?

最佳答案

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

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

http://ideone.com/Pdsz3M

关于c++ - 设置小数点前数字的精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21640400/

相关文章:

c++ - Qt - 在 QGraphicScene 中拖放时如何从项目中获取文本?

python - 在 Windows 上模拟 Linux 的浮点字符串转换行为

python - 使用 yaml 进行 Prettier float

c++ - uint8_t 不能用 cout 打印

c++ - 如何创建一个新类来继承 ostream 并将其用作 cout 但带有锁

java - Eclipse“Java 已启动但返回退出代码=13

C++函数链返回函数

floating-point - 如果两个整数的乘积落在浮点类型的无损范围内,是否会无损?

java - 浮点错误

java - 谷歌文档如何在不使用 Flash 查看器的情况下显示我的 .PPT 文件?