我有这个问题。我从库 cmath 的函数 double sin(double x)
得到结果。我想将此结果写入声明为 ofstream file
的文件中,并且我希望当结果接近于零时,写入 0.000000
而不是 1.22465e-16
。
例如,我试过:
`double x=sin(interval*c);
file<<"value:"<<x;
printf("value:%f",x);`
其中 interval
和 c
的乘积约为 π。
但在文件中写入1.22465e-16
,而在shell中写入0.000000
。我怎样才能在 ofstream 文件中得到近似值0.000000
?谢谢大家
最佳答案
如果你想要 "%f"
说明符使用的相同格式(而不是默认的 "%g"
),你可以使用
std::cout << std::fixed;
要恢复原始格式,即返回使用与 "%g"
相同的格式
std::cout << std::defaultfloat; // C++11
std::cout.setf(std::ios_base::fmtflags(), std::ios_base::floatfield); // pre C++11
关于C++:在 ofstream 文件中写一个双近似值,比如 printf("%f....),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19939467/