【发布时间】:2020-06-14 18:31:23
【问题描述】:
我正在使用此代码将科学计数法数字输出到文件:
file << scientific << setprecision(10) << num << endl;
例如,如果数字是 3.0,我从代码中得到 3.0000000000E+00。如何将指数部分的数字设为 3 位?我想得到 3.0000000000E+000。
【问题讨论】:
-
您使用的是哪个编译器?我认为
gcc的标准应该是三位数。 -
我正在使用视觉工作室。编译器版本是 Microsoft (R) C/C++ Optimizing Compiler Version 19.25.28614 for x86
-
相关:stackoverflow.com/questions/31331723/…(如果不是骗子)。另外:stackoverflow.com/questions/9226400/…。简而言之,你不能,你必须“手动”修改输出。
-
@Bob__ 你确定吗?根据These docs,输出有3位指数?
-
@darclader 参见例如stackoverflow.com/a/50620148/4944425 引用 C11 标准 “指数始终包含至少两位数字,并且仅包含表示指数所需的更多数字。如果值为零,则指数为零” .另外:stackoverflow.com/a/35738440/4944425