use*_*052 7 c floating-point windows-xp
我有以下程序:
#include <stdio.h>
int main(int args, char *argv[]) {
printf("%f\n", 0.99999);
printf("%e\n", 0.99999);
}
Run Code Online (Sandbox Code Playgroud)
结果是:
0.009990
9.999900e-001
Run Code Online (Sandbox Code Playgroud)
为什么第一个数字错了?我使用Windows XP,编译器"Logiciels Informatique lcc-win32 version 3.8.编译日期:2012年11月30日19:38:03".
该程序是正确的,其输出应该是:
0.999990
9.999900e-01
Run Code Online (Sandbox Code Playgroud)
或与此非常相似的东西。
(您不使用argsor argv,并且 的第一个参数的通常名称main是argc而不是args,但这两个都不是影响程序行为的问题。)
看起来您在实现中发现了一个错误,可能是在运行时库中,而不是在编译器本身中。我简短的谷歌搜索没有找到对这个特定错误的引用(事实上,最热门的是这个问题)。
我建议联系 lcc-win 的维护者;联系信息位于网站上。这个问题的简短描述和链接应该提供足够的信息,至少在开始时是这样。