因此,根据cplusplus.com,当您通过以下方式将输出流的格式标志设置为科学计数法时of.setf(ios::scientific)
您应该看到3位数字加号和一个指数。但是,我的输出似乎只有2。有任何想法吗?使用GCC 4.0.1在Mac OS上编译。
这是我正在使用的实际代码:
of.setf(ios::scientific);
of.precision(6);
for (int i=0;i<dims[0];++i) {
for (int j=0;j<dims[1];++j) {
of << setw(15) << data[i*dims[1]+j];
}
of << endl;
}
以及示例输出行:
1.015037e+00 1.015037e+00 1.395640e-06 -1.119544e-06 -8.333264e-07
谢谢
最佳答案
我认为cplusplus.com是不正确的,或者至少正在记录特定的实现-我看不到任何其他在线文档,其中没有具体说明所显示的指数位数-我什至在C++规范中都找不到。
编辑:
C++ Standard Library: A Tutorial and Reference并未明确说明指数位数;但所有示例均显示两个指数位。
关于c++ - 科学流中的指数仅2位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1257182/