CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

这是为什么??

楼主yanchang(笨笨)2001-12-19 14:46:49 在 C/C++ / C语言 提问

#include   <stdio.h>  
  void   main()  
  {  
      int   a;  
      float   b;  
      char   c;  
      float   input;  
      printf("输入一个实数:");  
      scanf("%f",&input);  
      a=input;  
      b=input;  
      c=input;  
      printf("整数a=%d\n",a);  
      printf("实数b=%f\n",b);  
      printf("字符c=%c\n",c);  
  }  
   
  当我输入65.99  
  显示:  
  整数a=65  
  实数b=65.989998-----为什么这样????  
  字符c=A  
   
  我输入其他的数9.99就正常 问题点数:20、回复次数:11Top

1 楼kingfish(工作很忙,很少来csdn...)回复于 2001-12-19 15:05:32 得分 0

  printf("实数b=%.2f\n",b);Top

2 楼happyforever()回复于 2001-12-19 15:10:42 得分 0

看一下内存中的存储情况吧!Top

3 楼zhaotao0982(victor)回复于 2001-12-19 15:54:14 得分 0

类型转化时发生的误差Top

4 楼blood_jz()回复于 2001-12-19 16:43:44 得分 0

精度问题,属于系统误差Top

5 楼hz129(古雨)回复于 2001-12-19 19:48:19 得分 0

精度问题,建议你看一下浮点数在机器中存储的方式,计算机组成原理中有Top

6 楼phoenix96_2000(Arcrest)回复于 2001-12-19 20:57:20 得分 5

浮点数问题了,你还会碰到很多这样的Top

7 楼liuxin4335(流镡)回复于 2001-12-20 13:55:43 得分 5

实型数据在系统中存储时,精度为8位Top

8 楼abelofcn()回复于 2001-12-20 15:08:53 得分 5

系统误差!Top

9 楼Polarislee(北极星)(无房无车,飘在北京)回复于 2001-12-20 15:10:09 得分 5

所以比较两个实数是否相等时最好用:abs(a-b)<1e-8这样的方式。Top

10 楼maoxianwang(傻蛋)回复于 2001-12-20 16:00:07 得分 0

printf("实数b=%.6f\n",b);   Top

11 楼justone(风铃人)回复于 2001-12-20 16:12:46 得分 0

这是正常的啊,系统的精确度的问题,没有什么好疑问的呢Top

相关问题

  • 这是为什么?
  • 这是为什么?????????
  • 这是为什么????
  • 这是为什么
  • 这是为什么??
  • 这是为什么
  • 这是为什么
  • 这是为什么?
  • 这是为什么???
  • 这是为什么?

关键词

  • 字符
  • 实数
  • 整数
  • 输入
  • printf
  • input
  • float

得分解答快速导航

  • 帖主:yanchang
  • phoenix96_2000
  • liuxin4335
  • abelofcn
  • Polarislee

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo