【发布时间】:2016-11-10 23:46:19
【问题描述】:
我尝试使用%d 打印浮点数(我知道不应该这样做。
但每次重新运行可执行文件时,它都会给出不同的值)
我的问题是:为什么每次打印的值都会改变?
我的系统:Ubuntu 14.04(64 位)
编译器:4.8.4
代码如下:
#include<stdio.h>
int main(){
float b = 12.3456;
printf("%d\n",b);
}
样本输出:
4bh1@mybox:~/C-fi$ ./test
-1629995944
4bh1@mybox:~/C-fi$ ./test
1147348376
4bh1@mybox:~/C-fi$ ./test
-1746005432
4bh1@mybox:~/C-fi$ ./test
510102216
4bh1@mybox:~/C-fi$
【问题讨论】:
-
未定义行为的一个很好的例子——你还需要知道什么?
-
我想知道为什么会这样?
-
因为未定义?
-
您使用的是什么平台/架构?
-
Ubuntu 14.04 64 位...
标签: c floating-point computer-science precision