我有以下程序:
#include <stdio.h>
int main(int args, char *argv[]) {
printf("%f\n", 0.99999);
printf("%e\n", 0.99999);
}
结果是:
0.009990
9.999900e-001
为什么第一个数字是错误的?我使用Windows XP,编译器“Logiciels Informatique lcc-win32 3.8版。编译日期:2012年11月30日19:38:03”。
最佳答案
那个程序是正确的,它的输出应该是:
0.999990
9.999900e-01
或者一些非常类似的东西。
(您不使用args
或argv
,main
的第一个参数的通常名称是argc
而不是 args
,但这些都不是应该影响程序行为的问题。)
看起来您在实现中发现了一个错误,可能是在运行时库中,而不是在编译器本身中。我的简短 Google 搜索没有找到对这个特定错误的引用(事实上, HitTest 门的是这个问题)。
我建议联系lcc-win的维护者;联系信息在 web site 上.一个简短的描述和这个问题的链接应该提供足够的信息,至少是开始。
关于c - lcc printf float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18409635/