使用指数表示法时printf中的奇怪符号

时间:2016-09-21 02:31:21

标签: c printf

我遇到了一个非常奇怪的情况。事实上奇怪,我甚至不确定如何提出我的问题!

我正在使用以简单格式生成输出文件的代码。这种格式的细节不是很重要。重要的是在文件的某处,有几行(数万行),每行有三对数字,用空格和换行符\n分隔。

每个数字都使用指数表示法编写,简单如下:

fprintf(outFile,"%e %e %e\n",x,y,0.0);

其中xy是双打。

这是一个奇怪的部分。在其中一个文件中,大于100K +行左右,有一行打印为

7.812500e-02 -1.875000g+00 0.000000e+00

-1.875000g+00中的 g + 00 究竟是什么?!

我使用这段代码超过5年,已经生成了超过几万个文件,这是我第一次看到这样的事情。我做了一些在线搜索但找不到任何东西?

有人请保佑我的理智!

1 个答案:

答案 0 :(得分:1)

这是一个错误,代码没有显示任何可能的情况用“g”显示科学记数法,也许这个错误是由你的数据引入的所以我建议检查那个特定的文件,检查所有的NP字符,然后报告库中的错误。

https://sourceware.org/bugzilla