lcc printf浮点

时间:2013-08-23 18:35:52

标签: c floating-point windows-xp

我有以下计划:

#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 version 3.8。编译日期:2012年11月30日19:38:03”。

1 个答案:

答案 0 :(得分:2)

该程序是正确的,其输出应为:

0.999990
9.999900e-01

非常类似的东西。

(您不使用argsargvmain的第一个参数的通常名称是argc,而不是args,但是这些都不会影响你的程序行为。)

看起来您在实现中发现了一个错误,可能是在运行时库中而不是在编译器本身中。我的简短谷歌搜索没有提到这个特定的错误(事实上,最受欢迎的是这个问题)。

我建议联系lcc-win的维护者;联系信息位于web site。简短的描述和这个问题的链接应该提供足够的信息,至少要开始。