因此,根据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/

10-14 05:28