【发布时间】:2017-05-17 12:22:24
【问题描述】:
#include <stdio.h>
int main(void) {
printf("%d\n", 50.2);
return 0;
}
~ 当我执行它时。
50.2 的二进制是 (0100 0010 0100 1000 1100 1100 1100 1101)。
所以,我预计是 1,112,067,277,但是,这些值不是,也不是固定的。
值每次都改变,为什么?
【问题讨论】:
-
检查你的代码
-
您需要使用
gcc -Wall -g yoursource.c -o yourprog进行编译(所有警告和调试信息),改进代码以获得没有警告,然后运行./yourprog并使用gdb ./yourprog进行调试 -
请不要张贴纯文本输出的截图。只需将文本复制并粘贴到您的问题中即可。
-
您可能想查找“未定义行为”中的“未定义”一词的含义。
标签: c floating-point int printf