首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c语言有关问题。

2012-03-28 
c语言问题。。。#includestdio.hint main(){double a334.2222printf(%d,a)return 0}。。。。。。输出结果是

c语言问题。。。
#include<stdio.h>
int main()
{
double a=334.2222;
printf("%d",a);
return 0;
}


。。。。。。输出结果是563499709.。。为什么?我知道是应该用%lf.......我是想知道用%d为什么会输出563499709?

[解决办法]
可以看看浮点数的存储格式

浮点数的存储格式 -- Elegant C++ -- 编程爱好者博客
[解决办法]
这就是浮点数存储的问题了……
[解决办法]
请 google IEEE754 标准
[解决办法]
为什么这么多人和 printf() 较劲?
[解决办法]
由于浮点型和整型的存储方式是不一样,你可以用强制类型转换符,按你那种输出方式,是直接将内存中的存储浮点型的二进制直接以整型读出,所以出现你那种情况,我也试了一下。也是你这种情况。
[解决办法]
这是编译器将float存储解释为Int的结果,不要深究啦,现在的项目绝大多数都基于GUI的,即使一些console来显示的也很简单的。
[解决办法]
这是编译器将float存储解释为Int的结果,不要深究啦,现在的项目绝大多数都基于GUI的,即使一些console来显示的也很简单的。

热点排行