有效数字的位数问题

cucumberqlt 2005-09-02 06:05:16
main()
{
float a,c;
a=33333334.333;
c=3333333333;
printf("a=%f\nc=%f\n",a,c);
}
a就可以正确显示前8位数字,可是为什么c就只能正确显示前7位呢?
...全文
213 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixingzhong 2005-09-04
  • 打赏
  • 举报
回复
7 位以后的是无效数据 ! 随机的 ....
jixingzhong 2005-09-04
  • 打赏
  • 举报
回复
原因就是 float 只有 7 位有效数据 !
bingbox_1984 2005-09-03
  • 打赏
  • 举报
回复
对了~我记得C++ Prime书上提到
float类型只能表示数字中的前六位或前七位~~
标准答案!!
xfgang 2005-09-03
  • 打赏
  • 举报
回复
在C言语的书中,float类型只能表示数字中的前六位或前七位~~
但是一般存在小数点是他会出现前8位是正确的,但是在没有小数点是只能够以7位表示.
sx9401 2005-09-03
  • 打赏
  • 举报
回复
a=33333334.000000
c=3333333248.000000
Press any key to continue
sx9401 2005-09-03
  • 打赏
  • 举报
回复
#include <stdio.h>
main()
{
float a,c;
a=33333333.333;
c=3333333333;
printf("a=%lf\nc=%lf\n",a,c);

}
snowbirdfly 2005-09-02
  • 打赏
  • 举报
回复
对了~我记得C++ Prime书上提到
float类型只能表示数字中的前六位或前七位~~
zhouhuahai 2005-09-02
  • 打赏
  • 举报
回复
应该是不同编译器所产生的原因,楼主用的是TC吧?
snowbirdfly 2005-09-02
  • 打赏
  • 举报
回复
没有啊~
//#include <iostream>
//#include <cstring>
#include <windows.h>
#include <stdio.h>
//using namespace std;

int main()
{
float a,c;
a=33333333.333;//改了
c=3333333333;
printf("a=%f\nc=%f\n",a,c);

return 0;
}
结果为:
a=33333334.000000//只能正确显示前7位
c=3333333248.000000//只能正确显示前7位
Press any key to continue

69,371

社区成员

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

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