C++ 中的 cout 浮点格式
cout floating point format in c++
std::ostream& operator<<(std::ostream& o, const mat4& m)
{
o << std::setprecision(6) << std::fixed << std::right;
const int w = 8;
for (int i = 0; i < 4; i++)
{
int j = 4 * i;
o << '[' << std::setw(w) << m[j] << ',' << std::setw(w) << m[1 + j] << ',' << std::setw(w) << m[2 + j] << ',' << std::setw(w) << m[3 + j] << ']' << std::endl;
}
return o;
}
我想将数据打印为:
[-1.00000, 1.00000, 123.000,-23.0000]
这就是我想要实现的目标:
- 如果负号不存在,则添加空格
- 字符串的大小是固定的,它只显示最重要的值
我正在考虑使用 std::fixed
或 std::scientific
但无法弄清楚如何使用 iomanip 实现上述格式。这甚至可以用iomanip完成吗,还是我需要实现自己的方法?
你想要setiosflags(ios_base::showpoint)
#include <iomanip>
#include <iostream>
int main()
{
double m[] = {-1, 1, 123, -23};
const int w = 8;
std::cout << std::setiosflags(std::ios_base::showpoint);
std::cout << '[' << std::setw(w) << m[0] << ',' << std::setw(w) << m[1] << ',' << std::setw(w) << m[2] << ',' << std::setw(w) << m[3] << ']' << std::endl;
}
结果是:
[-1.00000, 1.00000, 123.000,-23.0000]
相关文章:
- 如何在openssl-ecc中获取十六进制格式的私钥
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 0x%08lx 格式说明符在 printf 语句到 cout
- 在 c++ 中以十六进制格式打印无符号字符(BYTE).使用 std::cout
- 了解 C++ 中的 cout 格式
- 如何理解cout的默认格式
- 输出使用 cout 转换为 ASCII 的文本时输出格式不正确,C++
- 在CPP的COUT中等效的printf格式
- 并发cout格式
- 从printf-复杂格式指定符模式切换到cout
- C++具有 std::cout 格式的可变数量的参数
- 为什么我们不将格式说明符与 cout 一起使用?
- 正在将cout格式的数据写入printf
- C++ 中的 cout 浮点格式
- 在c++中使用cout以十六进制格式打印OpenCL cl_uchar
- 自动C++ cout <<格式
- 为什么 cout<<hex satement 使其余部分仅以十六进制格式打印
- 在 cout 中将数字十进制格式显示为指数
- 使用 std::cout 时如何模拟 printf 的 %p 格式?