我需要用固定宽度的科学记数法输出我的数据,如下面的示例所示。有没有办法实现它?
数据:
- [+ 0.000000e + 00,+ 0.100000e + 00,+ 2.400000e + 00,+ 3.600000e + 00,+ 4.800000e + 00]
- [+ 1.200000e + 00,+ 1.300000e + 00,+ 2.400000e + 00,+ 4.800000e + 00,+ 6.000000e + 00]
-SW
答案 0 :(得分:1)
为您的数据创建一个包装类:
struct Fixed {
Fixed(double v = 0): value(v) {}
double value;
std::string ToString() const {
/* write something that outputs this in the format you want */
}
};
并重载operator <<
:
YAML::Emitter& operator << (YAML::Emitter& out, const Fixed& f) {
out << f.ToString();
return out;
}
然后它会像你期望的那样工作:
std::vector<Fixed> data = /* ... */;
YAML::Emitter out;
out << data; // etc