double(float) to int

重庆-老白 2011-10-27 09:33:01
#include<stdio.h>
int main(void)
{
float a=3;//使用double是一样的答案;
printf("%d\n",a);//a为0;
return 0;
}

我的数据结构学得不好。。麻烦指点
...全文
114 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yht8708 2011-10-27
  • 打赏
  • 举报
回复
整形与浮点数据存储结构区别,论坛有好多这样的问题,你可以查一下
Song9007206710328 2011-10-27
  • 打赏
  • 举报
回复
你把3改为3.0f,在试试
ignewbie 2011-10-27
  • 打赏
  • 举报
回复
printf函数对于输出表项与输出控制格式之间的关系,在书中讲的,在不一致的情况下,输出项要按输出控制格式转换并按其格式输出,但是在vc++中,是实现不了的,要严格按照输出项与输出格式一致才可以正确输出,如果输出表项有多个时,有一个不一致,其他的会受到影响!!!
AnYidan 2011-10-27
  • 打赏
  • 举报
回复
google IEEE754
mad_13810376563 2011-10-27
  • 打赏
  • 举报
回复
精度损失,怎么会有这样的需求
xiaozhiwei 2011-10-27
  • 打赏
  • 举报
回复

printf("%d\n",(int)a);
诶呦 2011-10-27
  • 打赏
  • 举报
回复
float a=3;//使用double是一样的答案;
printf("%d\n",a);//a为0;

//要输出浮点类型用%f或者%lf
//要输出整形3,printf("%d\n",(int)a);
bdmh 2011-10-27
  • 打赏
  • 举报
回复
float的存储和int完全不一样,你这样访问当然会有问题
hondely 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 gdujian0119 的回复:]

引用 5 楼 anyidan 的回复:

google IEEE754
float是用这个标准的。
照楼主的打印格式用%d,系统会将那个float类型的a的数据(也是4个字节的其实)当成int来解析,楼主可以试试上面的那个标准编码然后换算成整型的,看看是不是打印的正确。
[/Quote]
++
孤独小剑 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 anyidan 的回复:]

google IEEE754
[/Quote]float是用这个标准的。
照楼主的打印格式用%d,系统会将那个float类型的a的数据(也是4个字节的其实)当成int来解析,楼主可以试试上面的那个标准编码然后换算成整型的,看看是不是打印的正确。
wyfwx 2011-10-27
  • 打赏
  • 举报
回复
%d --- 请理解其含义
%f

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧