c - lcc printf float

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

最佳答案

那个程序是正确的,它的输出应该是:

0.999990
9.999900e-01

或者一些非常类似的东西。

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

看起来您在实现中发现了一个错误,可能是在运行时库中,而不是在编译器本身中。我的简短 Google 搜索没有找到对这个特定错误的引用(事实上, HitTest 门的是这个问题)。

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

关于c - lcc printf float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18409635/

相关文章:

c - 以字符串和整数为键的哈希表的哈希函数

c - 从命令行传递参数时 *argv[] 中的字符大小

C++ - 进程以管理员身份运行时的 GetUserName()

c++ - 重新分配已存储在目标变量中的一个值是否会导致重写和更长的运行时间?

excel - 将数字从 Excel 单元格转换为 IEEE 754 Hex 格式

c++ - 接近零的浮点值会导致被零除的错误吗?

haskell - 在 Haskell 中将字符串转换为整数/ float ?

dll - WinXP下如何修复DWMAPI.DLL延迟加载依赖?

command-line - 通过命令行远程管理 Windows XP

c - 在命令行和 Makefile 中定义宏,在 Linux 上使用 gcc 工作,编写 C 代码