【发布时间】:2026-02-15 06:30:01
【问题描述】:
我有以下程序:
#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. Compilation date: Nov 30 2012 19:38:03”。
【问题讨论】:
-
当我使用 printf("%e\n", 0.99999);答案是正确的 9.999900e-001 这个问题只出现在特定的数字上。
-
我用的是 lcc-win,是的,
也包含在内。 -
该信息需要在您的问题中。请更新它以提及您正在使用 lcc-win(以及哪个版本),并将源代码更新为实际具有
#include <stdio.h>的版本(并且仍然存在问题)。确保复制并粘贴整个程序。 -
@KeithThompson:声誉为 1 的用户显示出真正的编译器错误应该获得某种奖励。
标签: c floating-point windows-xp